Study/Network

[Network]HAProxy 설치 및 설정

seomj 2024. 7. 30. 21:00

HAProxy를 설치하고 http 및 https 통신 설정 과정에 대해 다룬다.


HAProxy란

TCP 및 HTTP 기반 애플리케이션에 대한 고가용성, 부하 분산 및 프록시을 제공하는 무료, 매우 빠르고 안정적인 역방향 프록시

 

진행 순서

  • HAProxy 설치
  • server에 웹서버 설치
  • HAProxy 를 통한 웹서버 접속 - HTTP/HTTPS

 

구성 환경

client

proxy server - haproxy

server - nginx

 

HAProxy 설치

$ sudo apt install haproxy

 

웹 서버 설치

nginx

$ sudo apt install nginx
...
$ sudo nginx -v
nginx version: nginx/1.18.0 (Ubuntu)

 

HAProxy를 통합 웹 서버 접속

HTTP

haproxy.cfg

...
frontend http_fronted
        bind *:80
        mode http
        default_backend http_backend

backend http_backend
        mode http
        option forwardfor
        balance roundrobin
        server nginx <server_ip>:80

 

 

HTTPS

openssl을 사용했다.

이후 게재할 Nginx Proxy Manager에서 만든 key와 crt를 사용했다.

key와 crt 만드는 방법은 다음 게시글에 게재할 예정이다.

(아래 게시글 참고)

 

[Network]Nginx Proxy Manager 설치 및 설정

HAProxy에 이어 Nginx Proxy Manager를 설치하고 설정한다. [Network]HAProxy 설치 및 설정HAProxy를 설치하고 http 및 https 통신 설정 과정에 대해 다룬다.HAProxy란TCP 및 HTTP 기반 애플리케이션에 대한 고가용성,

seomj74.tistory.com

 

key와 crt를 pem으로 통합하여 저장

$ cat /etc/ssl/private/npm_selfsigned.key > /etc/haproxy/certs/haproxy_selfsigned.pem
$ cat /etc/ssl/certs/npm_selfsigned.crt >> /etc/haproxy/certs/haproxy_selfsigned.pem

 

haproxy.cfg 수정

global
        log /dev/log    local0
        ...
        ssl-default-bind-options ssl-min-ver TLSv1.2 no-tls-tickets
        tune.ssl.default-dh-param 2048
...
frontend http_fronted
        #bind *:80
        bind *:443 ssl crt /etc/haproxy/certs/haproxy_selfsigned.pem
        mode http
        default_backend http_backend

backend http_backend
        mode http
        option forwardfor
        balance roundrobin
        server nginx 192.168.123.184:80 check

 

확인

아래는 http와 https 모두 동일하게 진행

 

cfg가 이상이 없는지 체크하고 haproxy reload

$ sudo haproxy -f /etc/haproxy/haproxy.cfg -c
$ sudo systemctl status haproxy
$ sudo systmectl reload haproxy
$ sudo systemctl status haproxy

 

접속 확인

curl <haproxy server ip>
//http

curl -k https://<haproxy server ip>
//https

다음엔 Nginx Proxy Manager를 설치하고 HAProxy와 비교해보도록 하자.

'Study > Network' 카테고리의 다른 글

[Network]FTP 서버 구축  (0) 2024.08.03
[Network]Nginx Proxy Manager 설치 및 설정  (0) 2024.08.01
[Network]SCAN(스캔) 공격  (0) 2024.07.09
[Network]DNS(Domain name System)  (0) 2023.06.14
[Network]HAProxy  (0) 2023.06.11