原本在测试环境测试通过的APP,今天准备切到线上环境做最后测试,结果发现了错误.查看日志发现是APP端发送的http请求中的header内容丢失了.那么代码没有改动,怎么平白无故会丢失头信息? 于是想到两个环境的不同之处在于线上是通过nginx做的代理转发,会不会是nginx搞的鬼?于是搜索“nginx request header 丢失”,果不其然是这个问题,nginx对下划线的头信息做了限制,找到问题所在就等于完成了一大半,办法总比困难多.遂决定记录之. - 方法一:不用下划线 既然ngin…
若请求 Head 信息中存在自定义信息并且以 "_" 下划线间隔,则必须配置underscores_in_headers 否则 Head 无法向 Tomcat 转发 解决办法: 在nginx.conf的http块中添加以下参数 underscores_in_headers on;…
Nginx是一个强大的服务器软件,由于处理数据内容处于第七层协议应用层的原因,所以获取的数据也比较完整: Nginx做转发: 这个很简单,vi nginx.conf(编辑nginx配置文件) 添加location /public/sexy.jpg{//这个是你域名访问的图片 proxy_pass http://www.tmp.jpg;#这个是你要替换的图片路径(加上http头) } 保存退出,重启nginx 就可以看到原本项目 http://xxx/public/sexy.jpg变成了http:…
此文章仅作为本人的笔记,文章转载自  http://blog.csdn.net/defonds/article/details/46042809 Nginx 做反向代理,后端是 tomcat,chrome 浏览器访问项目时加载大文件失败 ERR_CONTENT_LENGTH_MISMATCH: 查看 linux 日志:2015/05/27 02:19:10 [crit] 29263#0: *72 open() "/usr/local/nginx/proxy_temp/3/00/000000000…
二台服务器,服务器A做域名转外,所有外网的域名都到这台服务器A的80端口上,服务器B内网地址192.168.1.227, 上面IIS搭建了N多网站,以端口来区分,用以前的方式 配置转发 结果发现首页能打开,但是首页上的搜索按钮,后台代码用Response.Redirect跳转到其他页面后发现URL又自动带上端口地址, 经过一下午的问群里的朋友及不停搜索,终于解决!!!! 特此记录,以备不时之需!!!…
背景:  获得远程机器某个目录下的数据文件 方案:使用Nginx配置 1./home/ftp/www/ 下面有images 文件夹,为了访问images下面文件,配置Nginx如下: location /images { root /home/ftp/www/images; autoindex on; } 然后报错为:location  404 Not Found,其实是因为你最终访问的是 /images == root + images = /home/ftp/www/images/image…
从header里面拿不到 TX_XID这种类型的字段, Nginx 会默认忽略含有 “_” 的 header 参数,而 TX_XID值的参数名恰好含有 “_” 符号,需要手动开启转发. 在 nginx.conf 中,修改 http 内容,添加一行: underscores_in_headers on;  …
最近遇到一个 Nginx 转发的坑,一个请求转发到 Tomcat 时发现有几个 http header 始终获取不到,导致线上出现 bug,运维说不是他的问题,这个锅我背了. 新增的几个 header 是这样的: accept_sign accept_token ... 反复检查代码,确定这些 header 是传了的,而且本地测试单独在 tomcat 中是可以接受到这些参数的,所以 tomcat 和命名本身是没问题的,初步断定是 Nginx 的问题. 经过一翻搜索,终于找到了一个 Nginx 的…
首先,在nginx配置中添加如下配置 server { listen ; server_name www.wenki.info; #要访问的域名 charset utf8; location / { proxy_pass http://wenki_info; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forw…
昨天遇到一个很蛋疼的问题,在提供的一个 http api中,有定义了一个"X_AUTH_TOKEN"自定义head,可是请求这个api时带上"X_AUTH_TOKEN".总是得不到值.在本地没有nigix做转发的情况下一切正常,部署到生产环境(nginx做了转发的),就出现了这个蛋疼的问题,初步怀疑是niginx配置问题.最后锁定问题所在是: nginx转发会 默认忽略 headers 中带name带"_"的 如果我们不想改程序,想让nginx支…