Назад | Перейти на главную страницу

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) и т.д.

Что я могу сделать с этим, чтобы усилить связь между этими службами?

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

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

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

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

 # netstat -s

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

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

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