HAProxy(High Availbility Proxy)
하드웨어 기반의 L4/L7 스위치를 대체하기 위한 오픈소스 소프트웨어 솔루션
TCP 및 HTTP 기반 애플리케이션을 위한 고가용성, 로드 밸런싱 및 프록시 기능을 제공하는 매우 빠르고 안정적인 무료 Reverse 프록시
*Reverse 프록시: 서버로 들어오는 요청을 대신 받아서 서버에 전달하고 요청한 곳에 그 결과를 다시 전달해주는 역할을 함
포워드 프록시와는 반대로 클라이언트와 인터넷, 서버가 있을 때 인터넷과 서버 사이에 프록시가 위치한다.
-> 클라이언트가 서버에게서 받은 응답이 정확히 어떤 서버로부터 받은건지 알 수 없는 형태의 프록시
반면 포워드 프록시는 클라이언트와 인터넷 사이에 프록시 서버가 위치한다.
-> 서버로 하여금 클라이언트로부터 온 요청이 정확히 누구에게서 온건지 알 수 없다.
HAProxy를 알기 위해 Load Balancing 개념을 먼저 필요함
동작 방식
- 최초 접근 시 서버에 요청 전달
- 응답 시 쿠키에 서버 정보 추가 후 반환
- 재요청시 proxy에서 쿠키 정보 확인 후 최초 요청 서버로 전달
- 다시 접근 시 쿠키를 추가할 필요없이 서버에 전달(클라이언트에 쿠키 정보가 계속 존재하여 재사용)
HA 고가용성
VBRP(Virtual Router Redundancy Protocol)을 지원한다.
HAProxy를 이중화하여 master 장애 발생 시 slave가 master의 VIP(Virtual IP)를 가져와 master로 승격된다.
동작 방식
단일 HAProxy와 다르게 최초 접근 시 쿠키에 바로 서버 정보를 입력하지 않고 서버에서 Jsessionid가 전달될 때 서버 정보를 합쳐서 전달한다.
- 쿠키게 정보가 없고 X-Forwarded-For에 정보 추가
- 쿠키에 정보 추가 없음
- Jsessionid 추가
- 서버 정보와 Jsessionid를 쿠키에 추가
- 쿠키에서 서버 판별 후 Jsessionid만 전달
<출처>
https://hoing.io/archives/2196
https://dev-youngjun.tistory.com/97
'Study > Network' 카테고리의 다른 글
[Network]SCAN(스캔) 공격 (0) | 2024.07.09 |
---|---|
[Network]DNS(Domain name System) (0) | 2023.06.14 |
[Network]Load Balancing(로드밸런싱) (0) | 2023.06.10 |
[Network]NAT(Network Address Translation) (0) | 2023.05.26 |
[Network]ACL(Access Control List) (0) | 2023.05.25 |