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 설정을 해도 상대방 서버에서 이를 거부할 수 있음
참고
'Today I Learn > Nodejs' 카테고리의 다른 글
이벤트 루프와 process.nextTick() 이해하기 (0) | 2021.03.08 |
---|---|
잊고 살았던 node.js 라우터 미들웨어 동작방식 (0) | 2021.03.04 |