nginx 로드밸런싱과 운영
4. 응용 변형 예제
4.1 세 대 이상으로 확장
server 줄을 추가하고 weight 비율만 조정하면 됩니다. 서버 대수가 늘어도 keepalive 값은 전체 백엔드 커넥션 풀 크기 기준으로 다시 계산합니다.
4.2 특정 경로만 다른 upstream 으로
관리자 API 처럼 별도 서버로 보내고 싶으면 location /admin-api/ { proxy_pass http://admin_backend/; } 처럼 경로별로 다른 upstream 을 지정합니다.
4.3 캐시 강제 비우기
배포 직후 캐시가 오래된 응답을 돌려줄 수 있습니다. proxy_cache_path 디렉터리를 비우거나 proxy_cache_bypass 조건을 배포 스크립트에서 잠깐 켜서 우회합니다.
4.4 rate limit 을 사용자별로
IP 대신 로그인한 사용자 ID 로 제한하려면 limit_req_zone $cookie_uid zone=userlimit:10m rate=5r/s; 처럼 다른 변수를 씁니다. 로그인 전 요청은 여전히 IP 기준이 필요합니다.
4.5 로그를 JSON 으로
분석 도구에 바로 넣으려면 log_format lb escape=json '{"addr":"$remote_addr","status":$status}'; 처럼 JSON 형식으로도 정의할 수 있습니다. 필드가 늘어날수록 파싱 도구 쪽 부담이 줄어듭니다.