Низкое значение keepalive_requests¶
Идентификатор проверки Gixy: low_keepalive_requests
Директива keepalive_requests устанавливает максимальное количество запросов, которые могут быть обслужены через одно keep-alive соединение. После достижения максимального количества запросов соединение закрывается.
Почему это важно¶
До nginx 1.19.10 значение по умолчанию было 100. Оно было увеличено до 1000, поскольку низкие значения могут вызывать проблемы:
- Мультиплексирование HTTP/2: Современные браузеры открывают меньше соединений, но отправляют много запросов через каждое из них. Низкое значение
keepalive_requestsвызывает частые сбросы соединений. - Отключения клиентов: Некоторые клиенты (особенно при использовании HTTP/2 с прокси, такими как Burp или mitmproxy) могут испытывать сбои запросов при преждевременном закрытии соединений.
- Накладные расходы на производительность: Установка новых соединений имеет накладные расходы (TCP-рукопожатие, согласование TLS). Поддержание соединений активными дольше улучшает производительность.
Плохой пример¶
keepalive_requests 100;
Это вызывает закрытие соединения после всего 100 запросов, что может вызвать проблемы с HTTP/2-клиентами.
Хороший пример¶
keepalive_requests 1000;
Или просто опустите директиву, чтобы использовать значение nginx по умолчанию (1000 начиная с nginx 1.19.10).
Ссылки¶
- Документация nginx: keepalive_requests
- Тикет nginx #2155: Увеличение keepalive_requests по умолчанию
Укрепляйте NGINX с поддерживаемыми RPM
Используйте NGINX Extras от GetPageSpeed для постоянно обновляемого NGINX и модулей на RHEL/CentOS/Alma/Rocky. Подробнее.