Вот два куска дебаг-лога - один с if ( $request_method = "POST" ),
другой - без
Это с:
2008/05/30 07:30:59 [debug] 24269#0: *5 http cleanup add: 2841BCDC
2008/05/30 07:30:59 [debug] 24269#0: *5 get rr peer, try: 1
...
2008/05/30 07:30:59 [debug] 24269#0: *5 http proxy status 200 "200 OK"
Тут дальше идут хидеры
Это без:
2008/05/30 07:43:18 [debug] 24330#0: *5 http cleanup add: 2841BB8C
2008/05/30 07:43:18 [debug] 24330#0: *5 get rr peer, try: 1
...
2008/05/30 07:43:48 [debug] 24330#0: *5 free rr peer 1 4
2008/05/30 07:43:48 [error] 24330#0: *5 upstream timed out (60:
Operation timed out) while reading response header from upstream
и тут вылетаем по таймауту
proforg пишет:
А что пишет в debug log'е про этот запрос ?
У меня до 0.7.0 включительно нормально работает
location / {
if ( $request_method = "POST" ) { rewrite / /index.php last; }
}
Ещё по идее должно работать
rewrite / @backend
в 0.7.1 правда у меня не работает ни то ни то:)
В твоём же случае как я понимаю даже без if ($request_method = POST ) {
POST запрос уйдёт на @backend - так как для / будет 405.
On 29.05.2008, at 9:51, Eugene Fominykh wrote:
У меня теперь не передается POST на backend - отваливается по таймауту.
А вот так работает.
location / {
if ($request_method = POST ) {
proxy_pass http://xxx.xxx.xxx.xxx:8008;
}
root /sites/$host/;
expires 48h;
error_page 403 404 405 = @backend;
}
Может тут есть другой выход?