nginx转发会 默认忽略 headers 中name带”_”的

昨天遇到一个很蛋疼的问题,在提供的一个 http api中,有定义了一个”X_AUTH_TOKEN”自定义head,可是请求这个api时带上”X_AUTH_TOKEN”。总是得不到值。在本地没有nigix做转发的情况下一切正常,部署到生产环境(nginx做了转发的),就出现了这个蛋疼的问题,初步怀疑是niginx配置问题。最后锁定问题所在是:

nginx转发会 默认忽略 headers 中带name带”_”的

如果我们不想改程序,想让nginx支持带”_”的head那就增加如下配置:

underscores_in_headers on;

关于这个问题网上有一些更详细的解释,请猛击下面的链接

  1. http://313968.blog.51cto.com/303968/895672
  2. http://www.ttlsa.com/nginx/nginx-proxy_set_header/
时间: 2024-12-20 15:17:56

nginx转发会 默认忽略 headers 中name带”_”的的相关文章

(转)nginx做转发时,带'_'的header内容丢失

原本在测试环境测试通过的APP,今天准备切到线上环境做最后测试,结果发现了错误.查看日志发现是APP端发送的http请求中的header内容丢失了.那么代码没有改动,怎么平白无故会丢失头信息? 于是想到两个环境的不同之处在于线上是通过nginx做的代理转发,会不会是nginx搞的鬼?于是搜索"nginx request header 丢失",果不其然是这个问题,nginx对下划线的头信息做了限制,找到问题所在就等于完成了一大半,办法总比困难多.遂决定记录之. - 方法一:不用下划线 既

Apache/nginx转发设置-分布式部署(转)

转自http://blog.csdn.net/fujianianhua/article/details/8062234 Apache转发设置 1.  Weblogic安装 Weblogic8和Weblogic10默认安装,选择完全安装即可,如果是Weblogic9则选择自定义安装,勾选WebService plugin 2.apache服务器安装 安装说明详见文档<Apache服务器搭建说明.doc> 版本对应关系: Weblogic版本   Apache版本 weblogic8     Ap

在nginx下去掉ci框架url中的index.php

ci框架默认的url规则中带有应用的入口文件,例如: example.com/index.php/news/article/my_article 在以上URL中带有入口文件index.PHP,这样的URL规则对搜索引擎来说是不友好的,那么如何去除这个index.php呢?apache环境下:通过 .htaccess 文件来设置一些简单的规则删除它.下面是一个例子,使用“negative”方法将非指定内容进行重定向: RewriteEngine on RewriteCond $1 !^(index

Nginx基础知识之————RTMP模块中的中HLS专题(翻译文档)

一.在Nginx配置文件的RTMP模块中配置hls hls_key_path /tmp/hlskeys; 提示错误信息: nginx: [emerg] the same path name "/data/hlskeys" used in /usr/local/nginx/conf/nginx.conf:178 and in /usr/local/nginx/conf/nginx.conf:178 解决办法: 查看官方RTMP源代码:nginx-rtmp-module / hls /ng

elk-Kibana设置登录认证-通过nginx转发(六)

一.kibana的登录认证问题 kibana是nodejs开发的,本身并没有任何安全限制,直接浏览url就能访问,如果公网环境非常不安全,可以通过nginx请求转发增加认证,方法如下: tips:kibana没有重启命令,要重启,只能ps -ef|grep node 查找nodejs进程,干掉重来. server { listen 80; server_name elk.yjmyzz.com; location / { auth_basic "secret"; auth_basic_u

一次悲催的nginx转发白屏经历

背景 公司还有一个学习平台,由于公网地址问题,所以想用nginx转发一下,首先后端地址访问时没有问题的,一切正常. 用nginx转发后,访问nginx代理地址悲催了,出现了白屏. 排查过程 首先贴出来我的nginx配置: server { listen 9005; port_in_redirect off; index index.jsp index.html; location / { proxy_pass http://111.111.111.111:9005; proxy_buffers

nginx 获取源IP 获取经过N层Nginx转发的访问来源真实IP

1. nginx 配置文件中获取源IP的配置项 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; #一般的web服务器用这个 X-Real-IP 来获取源IP proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for; #如果nginx 服务器是作为反向代理服务器的,则这个配置项是必须的:否则看不到源IP 2. nginx 代理服务器的模块ngi

光盘中自带的linux驱动是基于内核2.6的,ubuntu14的内核是3.13,根据光盘中默认的驱动

光盘中自带的linux驱动是基于内核2.6的,ubuntu14的内核是3.13,根据光盘中默认的驱动,得知nw336 model是RTL8188CUS,官方下载地址:http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=3&PNid=21&PFid=48&Level=5&Conn=4&DownTypeID=3&GetDown=false,当前unix最新版为4.0.2,支持2.6.18以后

nginx转发端口路由器再转发

场景 nginx 转发端口 路由器二次转发了,端口不一样 (shiro 或者其他一些权限控制架构会自动跳转,导致的端口不对.) proxy_set_header Host $host:$proxy_port; 这个$proxy_port 写死 nigix做反向代理 注意  :$proxy_port  与 :$server_port 区别 $server_port :nigix监听的端口 $proxy_port : 服务器真正访问的端口 server { listen       8888;