Вопрос по proxy
Zherdev Anatoly
tolyar at mx.ru
Mon Mar 14 14:18:05 MSK 2005
Есть вот какой вопрос по proxy. Есть подозрение, что nginx если во время
выполнения запроса произошла ошибка на backend'е перепосылает запрос.
Тут человек пожаловался, что письма приходят несколько раз, стал
разбираться, оказалось что скрипт вызывается N раз , где N равно кол-ву
бакендов. Дальнейшее изучение вопроса показало, что дублирование
происходит на операции которая выполняется явно больше чем
max_execution_time в php . Я бы мог предположить, что это proxy где-то
по пути такой умный, но почему кол-во запросов равно кол-ву бакендов и
все они пришли на разные бакенды ?
Я потестировал на скрипте который делает sleep() у меня тоже
запросы сдублировались, но почему-то только два раза (возможно что это
еще может от браузера зависеть), хотя бакендов больше, но все равно дублирование
на лицо.
SITE IP - - [14/Mar/2005:13:52:49 +0300 0] "GET /test/long.php HTTP/1.1"441 "-" "Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.7.6) Gecko/20050304 Firefox/1.0.1" "PASS/-/-/* 200/-/- *" "-"
SITE IP - - [14/Mar/2005:13:53:44 +0300 40] "GET /test/long.php HTTP/1.1"288 "-" "Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.7.6) Gecko/20050304 Firefox/1.0.1" "PASS/-/-/* 200/-/- *" "-"
log_format main '%{Host}i %addr - - [%time %request_time] "%request"'
'%length "%{Referer}i" "%{User-Agent}i" '
'"%proxy" "%gzip_ratio"';
В апаче логи вот какие:
BackEnd1: 20050314135400:IP - - [14/Mar/2005:13:53:44 +0300] "GET /test/long.php HTTP/1.0" 200 0 "-" "Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.7.6) Gecko/20050304 Firefox/1.0.1"
BackEnd2: 20050314135400:IP - - [14/Mar/2005:13:52:49 +0300] "GET /test/long.php HTTP/1.0" 200 147 "-" "Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.7.6) Gecko/20050304 Firefox/1.0.1"
При первом запросе "200 147" при втором втором "200 0"
При повторном запросе, если не выждать какое-то время запрос не дублируется.
Время выполнения скрипта 40 сек, время
Это как-то можно вылечить ?
--
Zherdev Anatoly.
More information about the nginx-ru
mailing list