文档章节

nginx做转发时,带’_’的header内容丢失

nazir
 nazir
发布于 2017/04/28 11:05
字数 300
阅读 24
收藏 0

原本在测试环境测试通过的APP,今天准备切到线上环境做最后测试,结果发现了错误。查看日志发现是APP端发送的http请求中的header内容丢失了。那么代码没有改动,怎么平白无故会丢失头信息?

于是想到两个环境的不同之处在于:线上是通过nginx做的代理转发,会不会是nginx搞的鬼?于是搜索“nginx request header 丢失”,果不其然是这个问题,nginx对下划线的头信息做了限制,找到问题所在就等于完成了一大半,办法总比困难多。

  1. **方法一:不用下划线 **

    既然nginx对下划线不支持,那没关系,不用下划线就是了。比如原来”app_version”改成”app-version”就可以了。(难怪一般header的name都是’-‘来拼接的,比如”User-Agent”)

  2. **方法二:从根本接触nginx的限制 **

    nginx默认request的header的那么中包含’_’时,会自动忽略掉。 解决方法是:在nginx里的nginx.conf配置文件中的http部分中添加如下配置:

underscores_in_headers on; (默认 underscores_in_headers 为off)

© 著作权归作者所有

共有 人打赏支持
nazir
粉丝 0
博文 20
码字总数 13313
作品 0
杭州
后端工程师
nginx反向代理跨域基本配置与常见误区

最近公司前后端分离,前端独立提供页面和静态服务很自然的就想到了用nginx去做静态服务器。同时由于跨域了,就想利用nginx的反向代理去处理一下跨域,但是在解决问题的同时,发现网上有些方案...

小七奇奇
08/29
0
0
nginx 反向代理 转发请求时,有时好有时没反应,产生原因及解决

遇到一个问题,nginx 完全做反向代理的时候,当有请求来的时候,后端服务器,有时可以很快返回结果,但有时根本没有访问到后端服务器 查了下发现nginx 这个需要手动进行配置,让nginx 支持下...

wks97
2017/04/06
0
0
Openresty最佳案例 | 第4篇:OpenResty常见的api

转载请标明出处: http://blog.csdn.net/forezp/article/details/78616660 本文出自方志朋的博客 获取请求参数 vim /usr/example/example.conf 重新加载nginx配置文件: nginx -s reload 在浏...

forezp
2017/11/23
0
0
nginx 转发到 tomcat 的 ServerName 配置问题

做‘记住我’功能时候遇到的问题。 本地测试的时候一点问题没有,扔到测试环境就不行。查了半天,原来是客户端的cookie保存失败了,保存cookie时的域是localhost,和当前访问的域名对不上。 ...

憨科
2014/04/18
0
0
解决nginx反向代理proxy不能转发header报头

使用nginx做负载均衡或http代理时,碰到http header不转发的问题。 配置里只有转发设置原始ip和host的 proxysetheader Host $host; proxysetheader X-Real-IP $remoteaddr; proxyset_header...

yanconggod
2017/11/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

day92-20180918-英语流利阅读-待学习

健身最大的敌人不是懒惰,而是逞强 Daniel 2018-09-19 1.今日导读 还记得 2008 年北京奥运会运动员刘翔的退赛风波吗?那天几乎所有中国人都将视线聚焦在了鸟巢体育馆 110 米栏的项目上,迫不...

飞鱼说编程
30分钟前
2
0
70.shell的函数 数组 告警系统需求分析

20.16/20.17 shell中的函数 20.18 shell中的数组 20.19 告警系统需求分析 20.16/20.17 shell中的函数: ~1. 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段...

王鑫linux
今天
3
0
分布式框架spring-session实现session一致性使用问题

前言:项目中使用到spring-session来缓存用户信息,保证服务之间session一致性,但是获取session信息为什么不能再服务层获取? 一、spring-session实现session一致性方式 用户每一次请求都会...

WALK_MAN
今天
6
0
C++ yield()与sleep_for()

C++11 标准库提供了yield()和sleep_for()两个方法。 (1)std::this_thread::yield(): 线程调用该方法时,主动让出CPU,并且不参与CPU的本次调度,从而让其他线程有机会运行。在后续的调度周...

yepanl
今天
4
0
Java并发编程实战(chapter_3)(线程池ThreadPoolExecutor源码分析)

这个系列一直没再写,很多原因,中间经历了换工作,熟悉项目,熟悉新团队等等一系列的事情。并发课题对于Java来说是一个又重要又难的一大块,除非气定神闲、精力满满,否则我本身是不敢随便写...

心中的理想乡
今天
57
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部