网络架构如下:
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处理