728x90
목차
1. Server Keepalive
- 클라이언트와 nginx 간의 연결
- HTTP, Server 또는 Location block 내에서 keepalive_timeout, keepalive_requests 설정을 사용
- 클라이언트와 nginx 간의 http 연결을 일정 시간 동안 유지해, 새로운 요청 시 재연결을 방지
- 주요 설정
- keepalive_timeout
- 클라이언트와 nginx 간의 연결을 유지할 최대 시간
- 기본값: 75s
- keepalive_requests
- 동일한 연결에서 처리할 최대 요청 수를 제한
- 기본값: 100
- keepalive_timeout
- 예시 코드
keepalive_timeout 60s;
keepalive_requests 1000;
2. Upstream Keepalive
- nginx와 백엔드(ex: application server) 간의 연결
- upstream block 내에서 keepalive 사용
- nginx 와 백엔드 서버 간의 연결을 풀로 관리하며, 새로운 연결을 매번 생성하지 않고 재사용 가능하도록 함으로써 백엔드 서버의 부하를 줄인다.
- 주요 설정
- keepalive: backend server 와 유지할 최대 지속 연결 수
- proxy_http_version 1.1 : HTTP/1.1 protocol 사용 명시
- proxy_set_header Connection ""; : Connection header 를 비워서 연결을 재사용 가능하도록 설정
- 예시 코드
# 1. upstream 블록: 백엔드 서버 풀 정의
upstream backend {
server 127.0.0.1:8080;
keepalive 32;
}
# 2. location 블록: 요청을 upstream으로 전달
server {
listen 80;
location / {
proxy_pass http://backend; # 요청을 backend로 전달
proxy_http_version 1.1; # HTTP/1.1 사용
proxy_set_header Connection ""; # 연결 재사용
proxy_set_header Host $host; # 클라이언트의 Host 헤더 전달
}
}
3. 참고자료
728x90
'스터디 > JAVA' 카테고리의 다른 글
[Nginx] underscore 가 포함된 custom header 확인이 안 될 경우(underscores_in_headers) (0) | 2025.01.25 |
---|---|
[JAVA] gson에서 Deserialize, Serialize, TypeAdaptor 적용하기 (1) | 2025.01.22 |
[JAVA] 타임존 알아보기 Instant, LocalDateTime, ZonedDateTime (0) | 2024.07.02 |
[JAVA] enum 비교는 equals 일까 == 일까? (1) | 2024.04.28 |
[JAVA] Junit InvalidTestClassError 오류 원인과 해결 방법 (0) | 2024.01.29 |
댓글