Использование fastcgi_keep_conn в nginx увеличивают производительность для php-fpm?

В nginx документах говорится, что проверка активности для fastcgi не может работать, если fastcgi_keep_conn не включен. Однако я не могу найти дальнейшие детали об этом. У меня уже есть проверка активности, включенная всего сервера. Я использую php-fpm. Есть ли какие-либо проблемы об использовании fastcgi_keep_conn, что я должен знать?

3
задан 13 July 2014 в 16:57
2 ответа

Теоретически fastcgi_keep_conn действительно увеличивает производительность, так как сокет между nginx и PHP-FPM остается открытым после обработки запроса. Таким образом, время, потраченное на открытие сокета, сохраняется.

В целом, это сэкономит несколько миллисекунд на каждом запросе, так что это не даст такого большого эффекта.

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

.
3
ответ дан 3 December 2019 в 05:43

Вы можете столкнуться с этой проблемой: https://stackoverflow.com/a/51457613/10115267

Обычно вы можете получать одну из следующих ошибок каждый раз, когда дочерний процесс php-fpm перезапускается из-за достижения pm.max_requests пока nginx все еще подключен к нему:

readv () не удалось (104: сброс соединения одноранговым узлом) при чтении восходящего потока и recv () не удалось (104: сброс соединения одноранговым узлом) при чтении заголовка ответа из восходящего потока

2
ответ дан 3 December 2019 в 05:43

Теги

Похожие вопросы