Apache Keepalive


В Apache KeepAlive — параметр определяющий принципы работы с открытым соединением: определяющий следует ли его держать открытым какое-то время или сразу закрыть после того как передача данных произошла.



В конфигурационном файле это директивы KeepAlive с возможными значениями On и Off (если параметр не указывать, то используется Off), а также KeepAliveTimeout. Последний имеет значение при включенном удержании соединения и задается в секундах.



Apache Keepalive и закрытие соединения


Apache один раз ответив на запрос пользователя закрывает соединение, если следом от него поступает новый запрос соединение снова открывается и процесс передачи данных повторяется.

Это довольно ресурсозатратный процесс, на установку соединения также уходит какое-то время.



Apache Keepalive позволяет держать соединение открытым указанное в конфигурационном файле количество секунд и быстрее отвечать на повторные запросы пользователя.



В конфигурационном файле директивы могут выглядеть так:

KeepAlive On
KeepAliveTimeout 20



KeepAliveTimeout больше 60 обычно не выставляют, удержание соединения обеспечивается и небольшими значениями — держать его постоянно особого смысла не имеет.


Их использование оправдано когда имеют место повторные обращения. Если сервер обслуживает новостной портал, информационный ресурс, блог и т.п. опцию нужно использовать.



На скриншоте приведен фрагмент конфигурационного файла /etc/apache2/apache2.conf с настройками KeepAlive:

apache keepalive


Опция не нужна только тогда когда типичным поведением пользователя является однократное обращение по какой-то ссылке. Например вызов одного скрипта на отправку письма или скачивание определенного файла с сервера.



Читайте про оптимизацию Apache.

Для нагруженных проектов максимальной производительности и скорости работы позволяет добиться использование веб-сервера Nginx и http2.

Сказать спасибо