2015-06-17 3 views
1

Мой сайт отлично работает с Nginx + PHP-FPM, но случайным образом он дает ошибку 502. Окружающая среда ДеталиNginx + PHP-FPM Случайно дает 502

OS - CetnOS 6 
Nginx 
PHP-FPM (php 5.4) 
APC (Code Cache APC 3.1.13 beta) 
Memcache (data cache) 

В PHP-FPM

pm.max_children = 200 
pm.start_servers = 40 
pm.min_spare_servers = 30 
pm.max_spare_servers = 50 
pm.max_requests = 500 

Также я использую соединение TCP не экипировку.

Если какой-либо орган имеет какие-либо данные, пожалуйста, обновите меня.

Благодаря

+1

http://www.nginxtips.com/502-bad-gateway-using-nginx/ –

+0

Привет, Алекс, я пробовал советы, упомянутые на предоставленной ссылке, отключая APC и устанавливая буфер fcgi и таймаут по ссылке, но не получил Успех – coder

ответ

0

Во-первых, уменьшить pm.max_children = 200 к pm.max_children = 50.

Вам нужно будет в первую очередь увеличить лимит файла системы, тем самым позволяя nginx и php-fpm открывать большее количество файлов. Предел файла должен быть увеличен, так как в Linux все в конце - это файл. Поэтому больше подключений, которые вы открываете, потребует большего количества файлов. В ubuntu конфигурация ограничения файла выполняется в /etc/security/limits.conf. Вам нужно будет найти это для CentOS.

Затем попытайтесь увеличить внутренний диапазон портов, который может использоваться php-fpm. Наряду с этим порты tcp обычно связаны с значением тайм-аута, прежде чем они будут повторно использованы, уменьшите этот таймаут, чтобы освободить больше портов, когда их работа будет выполнена.

Подробнее ... here.

Дополнение

В случае, если ошибка не устранена, попробуйте увеличить число рабочих процессов, PHP-FPM до 100. Несмотря на то, что не рекомендуется устанавливать значение так высоко, как они потребляют добавления памяти.

pm.max_children = 100 
pm.start_servers = 90 
pm.min_spare_servers = 70 
pm.max_spare_servers = 100 

Вы можете попробовать различные значения, чтобы получить оптимальное решение для вашей цели.

Основная причина для 502 - когда nginx не может пересылать или не пересылать запрос на php-fpm. Увеличение числа рабочих процессов php-fpm может быть одним из способов, тем самым давая nginx больше процессов для пересылки запросов.

+0

Привет, я уменьшил количество pm.max_children до 50 и увеличил жесткие и мягкие ограничения файлов и изменил /etc/sysctl.conf по ссылке. Но я все равно получаю 502 ошибки случайным образом. – coder

+0

Какая ошибка регистрируется в журнале ошибок nginx? –

+0

@ user524694 Какое количество запросов на секунду вы тестируете? –

Смежные вопросы