KeepAlive
KeepAlive On|Off
http는 기본적으로 connectless한 프로토콜이다. 즉, 한 번 접속한 사용자의 요청에 응답하고 나면 바로 접속을 끊어버린다. 그러나 요즘 웹 사이트는 한 번 접속에 적어도 수십개의 이미지 파일들과 스크립트 파일 등을 요청한다. 이 경우 매 번 연결을 끊고 다시 수립하는 것은 비효율적이므로 연속적으로 요청이 올 때 연결을 끊지 않고 몇 번 더 사용하게 된다면 네트워크 지연이 줄어들 것이다. 반대로 연결을 무한정으로 유지시킬 수도 없는데, 왜냐하면 현실에서 서버에 접속하는 클라이언트가 하나만 있는 것이 아니기에 수 많은 클라이언트가 접속을 하게 되면 HTTP 커넥션이 클라이언트 개수만큼 늘어나게 되며, 클라이언트가 이제 접속을 하지 않게 되더라도 서버는 이를 알 방법이 없으므로 메모리가 반환되지 않는, 메모리 누수 현상이 나타나게 되기 때문이다. 그러므로 적절하게 조절해야 하는데, 웹 사이트가 로드될 때 요구되는 리소스가 많을 수록 값을 크게 하면 HTTP 커넥션을 좀 더 효율적으로 사용할 수 있을 것이다.
메인 서버 설정 외 가상 호스트 안에서도 설정할 수 있다.
MaxKeepAliveRequests
MaxKeepAliveRequests 100
KeepAliveTimeout
KeepAliveTimeout 5
MaxKeepAliveRequests는 유추되는 의미 그대로 최대 몇 번의 요청에 대해 연결을 계속 사용할 지 결정한다. 0은 무제한. KeepAliveTimeout은 몇 초 동안 요청이 없으면 연결을 끊을 지 결정한다. 성능에 민감하지 않는 한 기본값 그대로 두는 것을 권장한다.
https://httpd.apache.org/docs/2.4/en/mod/core.html#keepalivetimeout