[nginx]post数据莫名奇妙丢失事件

[nginx]post数据莫名奇妙丢失事件

昨天快下班的时候,有位同事遇到post数据接收不到的问题

首先网络架构是:
     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;
}
最后,只能大眼望细眼,汗一滴。

你可能感兴趣的:([nginx]post数据莫名奇妙丢失事件)