Перенес nginx на физическую машину, теперь "всегда живой" бэкенд перестал отваливаться по таймауту (надо бы инвестигировать поведение фрибсд в виртуальной машине, но это не по теме). Ситуация слегка поменялясь, но все равно плохо - на 10000 соединений 30 отвалились по 504 ошибке, вот таким образом:
10.0.0.1 - - [01/Dec/2011:15:08:40 +0200] "GET /fcgi-proxy/ HTTP/1.1" 504 183 "-" "JoeDog/1.00 [en] (X11; I; Siege 2.70)" "-" "10.0.0.77:9003, 10.0.0.77:9004 504, 504 - 10.002, 10.002" 20.004 SSL:-/- "gzip:-"
10.0.0.1 - - [01/Dec/2011:15:08:40 +0200] "GET /fcgi-proxy/ HTTP/1.1" 504 183 "-" "JoeDog/1.00 [en] (X11; I; Siege 2.70)" "-" "10.0.0.77:9003, 10.0.0.77:9004 504, 504 - 10.002,10.002" 20.004 SSL:-/- "gzip:-"
{skip}
причем есть и корректные, например:
10.0.0.1 - - [01/Dec/2011:15:06:07 +0200] "GET /fcgi-proxy/ HTTP/1.1" 200 33 "-" "JoeDog/1.00 [en] (X11; I; Siege 2.70)" "-" "10.0.0.77:9001, 10.0.0.77:9002, 10.0.0.73:9000 504, 504, 200 - 10.002, 10.001, 0.006" 20.009 SSL:-/- "gzip:-"
----
Поставил nginx 1.1.9. Намного лучше, в общем то, что хотелось. На 10000 соединений 504-х (и 502) нет вообще, а есть только 18 соединений по 10 секунд:
HTTP/1.1 200 10.01 secs: 22 bytes ==> /fcgi-proxy/
HTTP/1.1 200 10.01 secs: 22 bytes ==> /fcgi-proxy/
HTTP/1.1 200 10.01 secs: 22 bytes ==> /fcgi-proxy/
{skip}
Это потому что 1.1.X проверяет нерабочий бэкенд только одним запросом. Есть ли планы сделать так же в 1.0.X ветке?
---
Igor