php-fpm upstream pool
Maxim Dounin
mdounin на mdounin.ru
Пт Ноя 25 14:43:52 UTC 2011
Hello!
On Fri, Nov 25, 2011 at 08:06:37AM -0500, igor.goncharenko wrote:
> Hi!
>
> Тестирую php-fpm пул и nginx балансером к
> нему. Требования - если один или
> несколько из серверов пула начинают
> отвечать дольше чем 30 сек - запрос
> отправлять на другой сервер пула:
>
> nginx.conf:
>
> http {
>
> {skip}
>
> fastcgi_connect_timeout 3;
> fastcgi_next_upstream error timeout invalid_header;
> fastcgi_read_timeout 30;
> fastcgi_send_timeout 3;
>
> {skip}
>
> vhost.conf:
>
> {skip}
>
> upstream fcgi_proxy {
> server 10.0.0.10:9000 max_fails=1 fail_timeout=240s; # answer more
> than 60 sec
> server 10.0.0.11:9000 max_fails=1 fail_timeout=240s; # answer more
> than 60 sec
> server 10.0.0.12:9000 max_fails=1 fail_timeout=240s; # ok
> }
>
>
> location ~ ^/fcgi_proxy/$ {
>
> include /usr/local/etc/nginx/fastcgi_params;
>
> fastcgi_param SCRIPT_FILENAME /home/fcgi_proxy/index.php;
> fastcgi_param HOST $host;
> fastcgi_pass fcgi_proxy;
>
> allow all;
> }
>
> {skip}
>
> Пул работает отлично пока два сервера
> их трех начинают отвечать долго (см
> коментарий в upstream, эмулируем timeout
> больше 30 сек). В этом случае
> проскакивают такие ошибки:
>
> 10.0.0.1 - - [25/Nov/2011:12:38:26 +0000] "GET /fcgi-proxy/ HTTP/1.1"
> 504 1205 "-" "JoeDog/1.00 [en] (X11; I; Siege 2.70)" "-"
> "10.0.0.10:9000, 10.0.0.11:9000 : 10.0.0.12:80 504, 504 : 404 - 30.008,
> 30.007 : 0.002" 60.017 SSL:-/- "gzip:-"
>
> То-есть 2 первых сервера их пула
> "ответили" 504 (не отработали по
> таймауту), третий отработал правильно и
> вызад 404 (в данном случае это корректный
> ответ), но клиент все равно получил 504
> ответ, хотя как я понимаю, должен был
> получить 404.
>
> и вот это еще странно 10.0.0.12:80 - откуда
> берется 80 порт?
После ":" - это уже работа с другими upstream'ами, видимо после
срабатывания error_page. В первой части сервер 10.0.0.12:9000,
судя по всему, был ранее признан негодным, и потому на него даже
не пытались ходить.
Maxim Dounin
Подробная информация о списке рассылки nginx-ru