nginx中post数据莫名奇妙丢失的问题的解决方法
时间:2014-06-19 02:45 来源:linux.it.net.cn 作者:IT网
网络架构如下:
nginx1
| rewrite
nginx2
| pass
resin1
nginx1是在192.168.1.1上
nginx2跟resin1是在192.168.1.2上
首先,访问nginx1,由nginx1 rewrite到nginx2,nginx2直接pass到resin1,整个过程是POST形式。至于为什么要用两层nginx,这当然是有原因的。
于是乎,快速制定了几个测试案例:
1,两种访问方式:GET,POST
GET URL带参数,没有问题。
POST 有问题。
让网络同事检查,处理这个location并没有做什么特殊的POST处理。——!
2,访问nginx1时,直接pass到resin1,跳过nginx2
问题依旧。
3,去掉nginx1,访问nginx2,直接pass到resin1
有数据的。
4,直接访问resin1
是有数据的。
为什么nginx1传递不了post数据,而nginx2可以,问题肯定出在nginx1的配置上。
经过一番折腾,终于找到了问题关键:
nginx1中,配置了一个全的post处理
复制代码 代码如下:if($request_method = POST) {
rewrite .* /post.php last;
}
本文原始链接:http://www.jbxue.com/article/3699.html
(责任编辑:IT)
网络架构如下:
nginx1是在192.168.1.1上 首先,访问nginx1,由nginx1 rewrite到nginx2,nginx2直接pass到resin1,整个过程是POST形式。至于为什么要用两层nginx,这当然是有原因的。
于是乎,快速制定了几个测试案例:
为什么nginx1传递不了post数据,而nginx2可以,问题肯定出在nginx1的配置上。
复制代码 代码如下:if($request_method = POST) { |