새소식

반응형
Nginx

[Nginx] nginx keepalive 설정(client-nginx-tomcat)

  • -
반응형

keepalive란

서버와 클라이언트가 맺은 연결을 유지하는 방식을 의미

HTTP 트랜잭션이 완료된 후에도 클라이언트와 서버 간의 TCP 연결을 열어둔다.

클라이언트가 다른 HTTP 트랜잭션을 수행해야 하는 경우 TCP 연결을 만드는 대신 유휴 Keepalive 연결을 사용한다.

 

장점

3-way handshacking overhead 줄임

 

단점

메모리 사용 증가 - connection을 열고 대기 

 

server - keepalive 설정

  • https://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_timeout
  • 하위에 해당하는 server 블록에 keepalive-timeout 설정
  • 기본값 75s
  • 해당 값에 0을 설정하면 keepalive 기능을 사용하지 않는다
  • keepalive-timeout :
    • connection이 idle 한 채로 얼마동안 유지될 것인가를 의미,
    • 이 시간이 지날 동안 request가 없는 경우에 connection close 
http {

  keepalive_timeout 0;
  
  server {
    // ..
  }
}

 

upstream - keepalive 설정

http {

  server {
    listen 10001;
    server_name test.server.com;
    location / {
      proxy_pass http://test_server;

      proxy_http_version 1.1;
      proxy_set_header Connection "";
    }
  }
  
  upstream test_server {
    keepalive_timeout 0;
    keepalive 8;
    keepalive_requests 1000;
    
    server 127.0.0.1:8080;
  }
}

 

nginx keepalive 설정 유의 사항

  • http_version 1.1 설정 필요 
  • connection ""

 

Nginx-Tomcat

기본적으로 root 설정은 keepalive를 끄고 (http 블록의 keepalive-timeout : 0)

tomcat과의 통신에만 keepalive 사용 ( upstream 블록에 keepalive 설정 추가 ) 

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.