[nginx]post數(shù)據(jù)莫名奇妙丟失事件
昨天快下班的時(shí)候,有位同事遇到post數(shù)據(jù)接收不到的問(wèn)題
首先網(wǎng)絡(luò)架構(gòu)是:
nginx1
| rewrite
nginx2
| pass
resin1
nginx1是在192.168.1.1上
nginx2跟resin1是在192.168.1.2上
首先訪問(wèn)nginx1,由nginx1 rewrite到nginx2,nginx2直接pass到resin1,整個(gè)過(guò)程是POST形式。至于
為什么要用兩層nginx,這當(dāng)然是有原因的了:-)
于是乎,快速制定了幾個(gè)測(cè)試案例:
1,兩種訪問(wèn)方式:GET,POST
GET URL帶參數(shù),沒(méi)有問(wèn)題。
POST 有問(wèn)題。
讓網(wǎng)絡(luò)同事檢查,處理這個(gè)location并沒(méi)有做什么特殊的POST處理。——!
2,訪問(wèn)nginx1時(shí),直接pass到resin1,跳過(guò)nginx2
問(wèn)題依舊。
3,去掉nginx1,訪問(wèn)nginx2,直接pass到resin1
有數(shù)據(jù)的。
4,直接訪問(wèn)resin1
是有數(shù)據(jù)的。
到這里,我感到很奇怪,為啥,為啥nginx1傳遞不了post數(shù)據(jù)呀,而nginx2可以,問(wèn)題肯定出現(xiàn)在nginx1的配置上!~經(jīng)過(guò)一番斗爭(zhēng)后,終于找到問(wèn)題關(guān)鍵
:
nginx1中,配置了一個(gè)全的post處理
if($request_method = POST) {
rewrite .* /post.php last;
}
最后,只能大眼望細(xì)眼,汗一滴。
posted on 2011-11-25 12:07 leisure 閱讀(5946) 評(píng)論(0) 編輯 收藏 所屬分類(lèi): server