728x90
번역 : https://cloudinfrastructureservices.co.uk/haproxy-vs-nginx-whats-the-difference/
로드 밸런싱이란?
로드 밸런싱은 우리 서버로 대량의 네트워크 트래픽과 데이터들이 들어올 때 여러 서버들로 이를 분산시켜주는 기술이다. 여러 클라이언트로부터 대량의 동시 요청을 대응하는 방법 중 하나다.
여러 서버로 트래픽을 분산시키는 로드 밸런싱 특성 덕분에 특정 서버에 과부하가 가거나 속도가 느려지는 문제들을 방지할 수 있다. 그 결과 우리의 어플리케이션 성능은 좋아진다.
로드밸런싱의 주요 기술로 Round Robin, IP Hash, Least Connections 등이 있다.
HAProxy란
HAProxy는 High Availability Proxy 고가용 프록시의 약자로, C언어로 작성된 고성능 오픈소스 소프트웨어다.
기능
- Load balancing : L4(TCP), L7(HTTP)
- Reverse Proxy : TCP, HTTP 기반 어플리케이션이 여러 서버들로 요청을 보내기 위함
- URL rewriting
- Proxy Protocol
- caching
- api support
- spoe support
- gRPC support
- debugging
- logging
- multithreading
- CLI server management
- HTTP authentication
- Dynamic SSL sertificate storage
- SSL/TLS termination
- Rate limit
장점
- 가상 호스트와 여러 네트워크 레이어(L4, L7)를 지원
- Nginx 대비 유저 친화적인 상태 페이지 제공
- 외부 모니터링 도구 사용하기 편함
- 세션, 쿠키 관련 서포트
- Nginx 대비 로드 밸런싱 속도가 더 빠름
단점
- 웹 서버 기능 없음
- POP/SMTP, SPDY 프로토콜 지원 없음
- HTTP cache 기능 없음
- 멀티 프로세싱 모드 성능이 그다지 좋지 않음
NGinx
NGinx는 최대한의 성능과 안정성을 제공하기 위한 웹서버로 기능하기 위해 개발된 오픈소스 소프트웨어다. HTTP 서버, 프록시 서버(이메일), 리버스 프록시, 로드밸런서 기능 등이 핵심이다.
NGinx는 아파치 서버와의 경쟁에서 우위를 점하고 있는데, gRPC, WebSocket, HTTP/2, 스트리밍 등을 지원한다. 아키텍처 확장과 대용량 트래픽 제어에도 적합하다.
기능
- Reverse proxy with caching
- FastCGI suppor with caching
- IPv6 지원
- Load balancing
- Websockets 지원
- static file 관리
- c10k
- TLS/SSL 지원
- 단일 엔트리 포인트
- A/B 테스팅 기능
- 표준 HTTP log 형식 제공
- 헬스체크 제공
장점
- 환경 설정이 간편하다
- 컨텍스트 스위칭을 지원하기에 다양한 연결들을 제어할 수 있다
- 적은 메모리와 리소스
- 동시성 제어
- 네트워크 안정성에 대한 의존성이 적음
- 간단한 설치
- 내부 실패에 대한 감지
단점
- 아파치 대비 커뮤니티 크기가 적음
- 아파치 대비 모듈과 학장성이 부족
- HTTP, HTTPS, Email 프로토콜 만 지원
- 헬스체크의 기능이 제한
- 세션, 쿠키 관련 기능이 부족
HAProxy vs Nginx
HAProxy는 확장성이 높고 보안이 좋은 반면, NGinx는 빠른 속도가 장점이다.
- | HAProxy | NGinx |
---|---|---|
용어 | High Availibility Proxy | Engine-X |
카테고리 | 로드 밸런서, 리버스 프록시 | 로드 밸런서 역할 하는 웹 서버 |
정의 | 로드 밸런싱과 고성능에 초점을 둔 오픈소스 소프트웨어 | HTTP 서버와 안정성과 고성능을 제공하는 오픈소스 웹서버 |
공개 | 2006 | 2004 |
핵심 기능 | 로드 밸런서, 고 성능, 리버스 프록시, 빠른 속도 | 고성능 HTTP 서버, 프록시, 리버스 프록시 |
대응 | 헬스체크, 페일오버 환경 | 캐싱 |
상태 페이지 | active 요청과 서버 상태에 대한 상세 상태 페이지 제공 | 없음 |
외부 메트릭 | Datadog, Prometheus 등 모니터링 도구 사용 가능 | 유료 버전만 외부 메트릭 지원 |
프로토콜 | gRPC, FastCGI, HTTP, HTTP/2 | HTTP, HTTPS, Email |
Application Delivery Controller(ADC) 랭킹 | 8th | 6th |
사용처 | 트위터, 깃허브, 인스타그램, 옐프, imgur, 레딧, 스택오버플로우 등 | 넷플릭스, 마이크로소프트, IBM, 구글 등 |
728x90
'Research > Network' 카테고리의 다른 글
TCP와 UDP (0) | 2023.03.22 |
---|---|
network_클라이언트 - 서버 간 소통 절차 다이어그램 (0) | 2022.12.28 |
AWS_No module name 문제 (0) | 2022.11.25 |
AWS_nohup으로 서버 24시간 가동시키기 (0) | 2022.11.22 |
서버_port :80과 포트 포워딩 (0) | 2022.11.22 |
댓글