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 сокеты. Честно говоря, это не помогло мне в той же ситуации, но может помочь вам:).