[CentOS] Linux HAProxy로 Load Balancing 하기 [HTTP / HTTPS / DNS]
Nowhere 와 Now here 의 차이

IT/ㄴ Linux

[CentOS] Linux HAProxy로 Load Balancing 하기 [HTTP / HTTPS / DNS]

TIENE 2023. 9. 11. 16:37
반응형


[구성도]


1. HAProxy HTTP LB

1.1) HAProxy 설치

yum -y install haproxy

- HAProxy를 설치한다.

 

 

1.2) HAProxy 구성

vi /etc/haproxy/haproxy.cfg

- 아래의 설정값을 그대로 입력한다. 기존의 cfg에서 LB에 필요한 부분만 구성되었다. 최하단에 Backend Server의 IP와 Port 번호를 입력한다.

# create new
global
      # for logging section
    log         127.0.0.1 local2 info    
    chroot      /var/lib/haproxy    
    pidfile     /var/run/haproxy.pid
      # max per-process number of connections
    maxconn     256
      # process' user and group
    user        haproxy    
    group       haproxy
      # makes the process fork into background
    daemon
defaults
      # running mode
    mode               http
      # use global settings
    log                global
      # get HTTP request log
    option             httplog
      # timeout if backends do not reply
    timeout connect    10s
      # timeout on client side
    timeout client     30s
      # timeout on server side
    timeout server     30s
# define frontend ( set any name for "http-in" section )
frontend http-in
      # listen 80
    bind *:80
      # set default backend
    default_backend    backend_servers
      # send X-Forwarded-For header
    option             forwardfor
# define backend
backend backend_servers
      # balance with roundrobin
    balance            roundrobin
      # define backend servers
    server             www01 192.168.1.128:80 check    
    server             www02 192.168.1.129:80 check

 

 

1.3) HAProxy LB 확인

- 다음과 같이 HAProxy IP를 웹 브라우저에 입력하면, Roundrobin 방식으로 Web Server으로의 요청과 응답을 받을 수 있다.

 

 

 

2. HAProxy HTTPS LB

2.1) SSL 인증서 생성

 openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/pki/tls/certs/haproxy.pem -out /etc/pki/tls/certs/haproxy.pem -days 365

- HTTPS 접속을 위한 인증서를 생성한다.

[CentOS] SSL/TLS 인증서를 적용한 Web Site 구축하기 기초 [OpenSSL / CSR / Self-Signed Certificate]

 

[CentOS] SSL/TLS 인증서를 적용한 Web Site 구축하기 기초 [OpenSSL / CSR / Self-Signed Certificate]

- [Linux] HTTPS 웹사이트 우회하여 접속하기 [bettercap / hstshijack] 에서 HTTPS 관련 공격을 테스트했었다. - 이제는 직접 SSL/TLS 인증서를 발급하고 Web Server에 적용하는 테스트를 진행한다. - 인증서 종류

a-gyuuuu.tistory.com

 

chmod 600 haproxy.pem

- root만 사용할 수 있도록 권한을 변경한다.

 

2.2) HAProxy 파일 수정

vi /etc/haproxy/haproxy.cfg

- 아래의 설정을 HAProxy 설정 파일에 추가한다.

tune.ssl.default-dh-param 2048
bind *:443 ssl crt /etc/pki/tls/certs/haproxy.pem

 

2.3) HAProxy LB 확인

- 다음과 같이, HTTPS로 접속한 뒤에 LB가 정상적으로 동작하는 것을 확인할 수 있다.

 

2.4) HAProxy HTTP LB 사용 X

- frontend에 있는 bind 값을 수정하면 된다.

 

3. HAProxy HTTPS + DNS

3.1) DNS 설정

- DNS Server에서 HAProxy Server 에 대한 A Record를 추가한다.

 

 

3.2) HAProxy LB 확인

- 다음과 같이, DNS 서비스까지 적용하여 LB가 동작하는 것을 확인할 수 있다.


참고: https://www.server-world.info/en/note?os=CentOS_7&p=haproxy&f=1

 

CentOS 7 : HAProxy : HTTP Load Balancing : Server World

# line 15,16: uncomment, lne 17: add $ModLoad imudp $UDPServerRun 514 $AllowedSender UDP, 127.0.0.1

www.server-world.info

 

반응형