Ingress Load Balancer (LB)와 WAS (Web Application Server) 구간에서 Session Disconnect 또는 세션 종료 시 좀비 세션이 발생하는 원인 중 하나로 KeepAlive Timeout 설정이 영향을 미칠 수 있습니다.
- KeepAlive (HTTP Keep-Alive): KeepAlive는 HTTP 프로토콜에서 사용되며, 클라이언트와 서버 간의 연결을 유지하고 여러 요청 및 응답을 동일한 연결에서 처리하는 기능을 나타냅니다. 이를 통해 연결을 매번 새로 열고 닫지 않아도 되므로 네트워크 리소스 및 성능을 향상시킬 수 있습니다.
- KeepAlive Timeout 설정: KeepAlive Timeout은 연결이 유효한 상태로 유지되는 최대 시간을 나타냅니다. 이 시간을 초과하면 연결이 종료됩니다. 네트워크 인프라 또는 웹 서버에서 이 값이 설정되며, 주로 초 단위로 지정됩니다.
- 좀비 세션 (Zombie Session): 웹 애플리케이션에서 사용자 세션이 종료되거나 로그아웃된 후에도 클라이언트 측에서 해당 세션을 계속 유지하려고 할 때 발생합니다. 이는 일반적으로 클라이언트와 서버 간의 세션 상태 동기화 문제로 인해 발생할 수 있습니다.
세션 Disconnect 시 좀비 세션이 발생하는 원인 중 KeepAlive Timeout 설정과 관련된 원인은 다음과 같습니다:
- KeepAlive Timeout 설정이 너무 길 경우: KeepAlive Timeout이 너무 길게 설정되어 있다면, 클라이언트와 서버 간의 연결이 오랫동안 유지될 수 있습니다. 따라서 세션이 종료되어도 클라이언트 측에서 해당 세션을 유지하려고 시도하게 되며, 이로 인해 좀비 세션이 발생할 수 있습니다.
- KeepAlive Timeout 설정이 너무 짧을 경우: 반대로, KeepAlive Timeout이 너무 짧게 설정되어 있다면, 클라이언트와 서버 간의 연결이 자주 종료됩니다. 이 경우에도 세션 Disconnect 시 좀비 세션이 발생할 수 있습니다.
따라서 KeepAlive Timeout 설정은 웹 애플리케이션의 세션 관리와 관련된 중요한 요소 중 하나이며, 적절한 값으로 조정하여 원치 않는 좀비 세션 발생을 방지할 수 있습니다. KeepAlive Timeout 설정은 네트워크 인프라나 웹 서버 설정에서 조절할 수 있으며, 웹 애플리케이션의 세션 관리 기능과 함께 고려되어야 합니다.