HAProxy는 소프트웨어 기반 L7 스위치라고 흔히 부른다. HAPROXY를 사용하면 응용 계층 프로토콜까지의 정보를 토대로 패킷 스위칭을 할 수 있기에 WAS(Web Application Server)를 여러대 두는 경우 로드밸런싱 등의 용도로 사용할 수 있다. 본 글에서는 CentOS 7에서 HAProxy를 설치하는 방법에 대해서 다룬다. YUM을 활용하여 설치하는 경우 구버전만 가능하다. YUM으로 설치하는 방법은 아래 링크에서 확인할 수 있다.
링크 : [CentOS 7] HAProxy를 YUM으로 설치하기, 공학코드, 2021-04-08.
1. HAProxy의 최신 버전을 확인한다.
공식 홈페이지로 가서 사용가능한 HAProxy 버전을 확인한다. 본 글에서는 안정화된 가장 최신 버전인 2.3.9 버전을 설치한다.
공식 홈페이지 주소 : www.haproxy.org
2. HAProxy 2.3.9 버전 설치파일을 다운로드하고 설치하자.
아래의 명령어를 입력하여 설치파일을 다운로드한다.
curl -O http://www.haproxy.org/download/2.3/src/haproxy-2.3.9.tar.gz
아래의 명령어를 입력하여 설치파일을 압축해제한다.
tar -zxvf haproxy-2.3.9.tar.gz
3. HAProxy 설치를 위한 의존성 패키지 설치
아래의 명령어를 입력하여 HAProxy를 설치하기 전에 의존성 패키지를 설치한다.
yum install gcc openssl openssl-devel pcre-static pcre-devel systemd-devel
4. HAProxy 2.3.9 설치
아래의 명령어를 입력하여 설치 옵션을 설정한다.
cd haproxy-2.3.9
make TARGET=linux-glibc USE_OPENSSL=1 USE_PCRE=1 USE_ZLIB=1 USE_SYSTEMD=1
아래의 명령어를 입력하여 HAProxy를 설치한다.
make install
아래의 명령어를 입력하여 설치된 HAProxy 버전을 확인한다. 아래의 사진처럼 2.3.9로 잘 설치된 것을 확인할 수 있다.
/usr/local/sbin/haproxy -v
아래의 명령어를 입력하여 HAProxy 서비스 예제 파일을 다운로드 한다.
curl "http://git.haproxy.org/?p=haproxy-2.3.git;a=blob_plain;f=contrib/systemd/haproxy.service.in" -o /etc/systemd/system/haproxy.service
아래의 명령어를 입력하여 HAProxy 서비스 예제 파일을 연다.
vi /etc/systemd/system/haproxy.service
'$CONFIG', 'EXTRAOPTS', 'PIDFILE'에 해당하는 내용을 입력한다. 필자의 경우 아래와 같이 설정하였다.
아래의 명령어를 입력하여 HAProxy 설정 파일을 생성한다. 설정 파일은 아래의 공식 문서에서 설정하는 방법을 확인할 수 있다.
HAProxy 2.3.6 설정 공식 문서 : cbonte.github.io/haproxy-dconv/2.3/configuration.html
vi /etc/haproxy/haproxy.cfg
필자의 경우 아래와 같이 설정하였다.
global
daemon
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
maxconn 4096
defaults
log global
retries 3
maxconn 1024
timeout connect 10s
timeout client 60s
timeout server 60s
listen stats
bind 127.0.0.1:9999
balance
mode http
stats enable
frontend haproxy_front
bind *:9000
mode http
default_backend haproxy_back
backend haproxy_back
balance roundrobin
mode http
option forwardfor
http-request set-header X-Forwarded-Port %[dst_port]
server back1 127.0.0.1:80
아래의 명령어를 입력하여 HAProxy가 사용할 폴더를 생성한다.
sudo mkdir -p /etc/haproxy
sudo mkdir -p /var/log/haproxy
sudo mkdir -p /etc/haproxy/certs
sudo mkdir -p /etc/haproxy/errors/
아래의 명령어를 입력하여 HAProxy 서비스 파일을 탑재한다.
systemctl daemon-reload
아래의 명령어를 입력하여 HAProxy를 시작한다.
systemctl start haproxy
아래의 명령어를 입력하여 CentOS가 부팅되면 자동으로 서비스 실행되도록 설정한다.
systemctl enable haproxy
부록. 방화벽 개방 명령어
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.0.0/24" port protocol="tcp" port="9000" accept"
firewall-cmd --reload
'리눅스(Linux) > CentOS' 카테고리의 다른 글
[CentOS 7] 워드프레스 설치 중 'Permission denied'가 발생하는 경우 (0) | 2021.04.18 |
---|---|
[CentOS 7/8] 클라우드 플레어만 서비스 받을 수 있도록 접근 제한 (0) | 2021.04.18 |
[CentOS 7] HAProxy를 YUM으로 설치하기 (0) | 2021.04.08 |
[CentOS 7] 아파치 웹서버 "Permission denied" 오류 조치 (0) | 2021.04.08 |
[CentOS 7/8] 아파치 웹서버(HTTPD) HTTPS(SSL) 적용하기 (0) | 2021.04.08 |
댓글