NginX и PHP-FPM, случайные 502

2010/09/19 14:52:07 [error] 1419#0: *10220 recv() failed
(104: Connection reset by peer) while reading response header from upstream,
client: [...], server: [...], request: "POST /[...] HTTP/1.1", upstream: 
"fastcgi://unix:/server/php-fpm.sock:", host: "[...]",
referrer: "[...]"

Это ошибка, которую я получаю случайно. В 95% случаев мои настройки работают отлично, но время от времени я получаю 502 за 3-4 последующих запроса.

Как вы можете видеть, я использую сокет Unix между сервером и процессом PHP, а также правильно настроил параметры FastCGI (SCRIPT_FILENAME) и т. Д.

Что я могу сделать для укрепления связи между этими службами?

Заранее большое спасибо.

3 ответа

Взгляните на свой php5-fpm.conf, возможно, вы достигли предела pm.max_children, который также является количеством одновременных запросов, которые может обработать ваш сервер.

этот предел может быть легко достигнут, если у вас есть сценарии, которые могут порождать процессы (остерегайтесь зомби!), или если у вас есть длинные запросы времени выполнения

Вы должны были исчерпать какой-то системный ресурс (например, somaxcon, maxfiles и т. Д.)
Проверьте свои

 # netstat -s

для падений, ошибок и без буферов

Так что вы можете играть с sysctl (например, max_dgram_qlen)

Я часто слышал, что у PHP-FPM есть проблемы с сокетами Unix. Попробуйте переключиться на Inet сокеты. Честно говоря, это не помогло мне в той же ситуации, но может помочь вам:).

Другие вопросы по тегам