ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • HA Proxy와 Nginx 비교
    DevOps 2025. 3. 23. 14:32
    728x90

    HAProxyNginx는 둘 다 로드 밸런서 및 프록시 서버로 널리 사용되지만, 설계 철학, 기능, 활용 방식에서 차이가 있습니다.또한 L4 (TCP)L7 (HTTP/HTTPS) 모두에서 사용 가능하지만, 각각의 특징에 따라 어떤 레이어에 더 적합한지도 차이가 납니다.

     

    HAProxy vs Nginx – 핵심 비교

     

    항목 HAProxy Nginx
    원래 목적 고성능 L4/L7 로드밸런서 정적 웹 서버 + L7 프록시
    L4 지원 (TCP) ✅ 강력함 (기본) ⚠️ 가능 (stream 모듈 필요)
    L7 지원 (HTTP) ✅ 매우 정교함 ✅ 뛰어남 (기본 제공)
    성능 (대용량 처리) ✅ 매우 우수 (특화됨) ✅ 우수 (Web에 특화됨)
    설정 방식 선언적, 세부 제어 강력 선언적, 간결하고 직관적
    동적 구성 변경 제한적 (RELOAD 필요) 제한적 (RELOAD 필요)
    헬스 체크 ✅ 매우 정교함 ✅ 기본적인 수준
    TLS 종료 ✅ 지원 ✅ 기본
    WebSocket / HTTP/2 ✅ 지원 ✅ 우수한 지원
    사용 예 API Gateway, DB 프록시, TCP 로드밸런서 웹서버, 리버스 프록시, 애플리케이션 서버 앞단
    구성 유연성 세밀한 제어 (예: connection rate, queue 등) 간결하고 쉽지만 제한적
    운영 사례 Cloudflare, Reddit, GitHub Netflix, Airbnb, Dropbox

     

    L4 / L7 로드밸런서로서의 역할

    계층 HAProxy Nginx
    L4 (Transport) ✅ TCP, UDP 로드밸런싱 기본 지원 ⚠️ stream 모듈 필요 (ngx_stream_core_module)
    L7 (Application) ✅ HTTP, HTTPS, gRPC 등 고급 제어 가능 ✅ 정적 파일, 웹서비스 중심으로 강력

    예시:

    L4 예 (TCP 기반):

    • DB (MySQL, Redis), 메시지 큐, TCP 서비스의 로드밸런싱
      • HAProxy:
    listen redis_cluster
      bind *:6379
      mode tcp
      server redis1 10.0.0.1:6379 check
      server redis2 10.0.0.2:6379 check

     

    • Nginx:
    stream {
      upstream redis_backend {
        server 10.0.0.1:6379;
        server 10.0.0.2:6379;
      }
      server {
        listen 6379;
        proxy_pass redis_backend;
      }
    }

     

    L7 예 (HTTP 기반):

    • 웹사이트, REST API, 인증 처리, 쿠키/헤더 기반 라우팅
      • Nginx가 더 익숙하고 설정이 직관적
      • HAProxy는 request path, method, cookie 기반으로 세밀한 정책 가능

    선택 가이드

    상황추천 도구
    초당 수천~수만 TCP 연결 처리 HAProxy
    정적 웹서버 + 리버스 프록시 Nginx
    웹 기반 L7 라우팅 + 캐싱 Nginx
    TCP 기반 Redis, DB, gRPC 로드밸런싱 HAProxy
    운영 정책 세밀한 제어 필요 (rate limit, queue 등) HAProxy
    Kubernetes Ingress 용도로 사용 Nginx Ingress Controller (혹은 HAProxy Ingress Controller도 있음)

     

    결론

    • 둘 다 L4, L7 모두 가능하지만,
      • HAProxy는 TCP/고성능/세밀한 제어에 특화
      • Nginx는 웹 서비스/HTTP 기반 서비스에 특화

    둘 중 하나만 골라야 한다면, "어떤 계층에서 어떤 종류의 트래픽을 처리할 것인지"가 가장 중요한 기준입니다.

    728x90
Designed by Tistory.