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 만드는 방법은 다음 게시글에 게재할 예정이다.
(아래 게시글 참고)
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 |