본문 바로가기

keepalive 설정

KeepAlive 설정을 nginx에서 하는것과 Http에서 하는것이 어떤 차이가 있는지 궁금해서 찾아보았다.

 

Nginx keepalive

- 어플리케이션 레벨에서의 keepalive

- 클라이언트가 먼저 종료되지 않는이상 keepalive_timeout 시간 동안 연결을 유지함

- 클라이언트가 브라우저라면, 브라우저는 http 1.1 사용 시 기본적으로 keepalive가 활성화되어있음. (해제 가능)

- nginx 입장에서는 클라이언트와의 연결을 유지할지를 결정하는 것. (호스트 입장에서 keepalive를 설정하는 것)

 

Http keepalive

- NodeJS의 http 모듈의 keepalive 설정 (http.Agent({keepAlive: true}))

- Default로 NodeJS는 keepalive를 사용하지 않음. 서버가 tcp 연결을 유지하고, 재사용하는 것이 부담일 수 있음.

- 클라이언트 입장이 되는 서버에서 keepalive 설정을 해도 상대방 서버에서 이를 거부할 수 있음

 

참고

- NodeJS HTTP

- tcp keepalive와 nginx keepalive