zoukankan      html  css  js  c++  java
  • (转)nginx做转发时,带'_'的header内容丢失

    原本在测试环境测试通过的APP,今天准备切到线上环境做最后测试,结果发现了错误。查看日志发现是APP端发送的http请求中的header内容丢失了。那么代码没有改动,怎么平白无故会丢失头信息? 
    于是想到两个环境的不同之处在于线上是通过nginx做的代理转发,会不会是nginx搞的鬼?于是搜索“nginx request header 丢失”,果不其然是这个问题,nginx对下划线的头信息做了限制,找到问题所在就等于完成了一大半,办法总比困难多。遂决定记录之。 
    方法一:不用下划线 
    既然nginx对下划线不支持,那没关系,不用下划线就是了。比如原来”app_version”改成”app-version”就可以了。(难怪一般header的name都是’-‘来拼接的,比如”User-Agent”) 
    方法二:从根本接触nginx的限制 
    nginx默认request的header的那么中包含’_’时,会自动忽略掉。 
    解决方法是:在nginx里的nginx.conf配置文件中的http部分中添加如下配置: 
    underscores_in_headers on; (默认 underscores_in_headers 为off)

  • 相关阅读:
    List
    迭代器Iterator
    Collection方法
    Collection体系
    Date DateFormat SimpleDateFormat
    Calendar
    BigInteger & BigDecimal
    System类
    正则2 -- pattern和Matcher
    关于团队组成
  • 原文地址:https://www.cnblogs.com/zjd2626/p/9047215.html
Copyright © 2011-2022 走看看