В nginx документах говорится, что проверка активности для fastcgi не может работать, если fastcgi_keep_conn не включен. Однако я не могу найти дальнейшие детали об этом. У меня уже есть проверка активности, включенная всего сервера. Я использую php-fpm. Есть ли какие-либо проблемы об использовании fastcgi_keep_conn, что я должен знать?
Теоретически fastcgi_keep_conn
действительно увеличивает производительность, так как сокет между nginx и PHP-FPM остается открытым после обработки запроса. Таким образом, время, потраченное на открытие сокета, сохраняется.
В целом, это сэкономит несколько миллисекунд на каждом запросе, так что это не даст такого большого эффекта.
Документация просто означает, что вам необходимо иметь как блок вверх по течению
с опцией keepalive
, так и опцию fastcgi_keep_conn
в блоке вашего PHP-скрипта, чтобы соединение работало keepalive. В основном, опция fastcgi_keep_conn
указывает nginx сделать так, чтобы PHP-FPM соединение оставалось открытым после запроса, а keepalive
соединение указывает nginx оставить соединение открытым.
Вы можете столкнуться с этой проблемой: https://stackoverflow.com/a/51457613/10115267
Обычно вы можете получать одну из следующих ошибок каждый раз, когда дочерний процесс php-fpm перезапускается из-за достижения pm.max_requests пока nginx все еще подключен к нему:
readv () не удалось (104: сброс соединения одноранговым узлом) при чтении восходящего потока и recv () не удалось (104: сброс соединения одноранговым узлом) при чтении заголовка ответа из восходящего потока