HAProxy는 여러 서버에 요청을 분산시키는 TCP 및 HTTP 기반 애플리케이션을 위한 고가용성 로드 밸런서 및 역방향 프록시를 제공하는 무료 오픈 소스 소프트웨어 입니다.
C로 작성되었으며 빠르고 효율적(프로세서 및 메모리 사용 측면에서)으로 유명합니다.
# yum install -y haproxy
# vi /etc/haproxy/haproxy.cfg
global
daemon
defaults
mode http
frontend http-in
bind *:80
acl firefox hdr_sub(User-Agent) Firefox
acl chrome hdr_sub(User-Agent) Trident
default_backend backend_servers
use_backend bk_firefox if firefox
use_backend bk_trident if trident
backend backend_servers
balance roundrobin
# cookie SVID insert indirect nocache maxlife 10s
server web01 10.0.22.2:80 cookie w1 check
server web02 10.0.22.5:80 cookie w2 check
server web03 10.0.22.4:80 cookie w3 check
backend bk_firefox
server web01 10.0.22.2:80
backend bk_trident
server web02 10.0.22.5:80
NAT IP로 접속 시 WEB01, 02, 03으로 부하를 분산시킨다.
User-Agent 파일을 검색하여 사용자가 어떠한 브라우저를 통해 접속하였는 지 알아낸다.
web01 server는 firefox 에서만 접속을 허용하고
web02 server는 trident (Internet Explorer) 에서만 접속을 허용한다
# systemctl enable --now haproxy