본문 바로가기
리눅스(Linux)/CentOS

[CentOS 7] HAProxy 최신 버전 설치하기

by 연구자 공학코드 2021. 4. 8.

공지사항

  1. 제가 운영하는 네이버 카페 개발자 커뮤니티 코어큐브(https://cafe.naver.com/ewsncube)에 가입하시면 컴퓨터 관련 학습 자료와 질의응답을 제공받으실 수 있습니다.

728x90
반응형

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

HAProxy 공식 홈페이지

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 서비스 예제 파일 다운로드

아래의 명령어를 입력하여 HAProxy 서비스 예제 파일을 연다.

vi /etc/systemd/system/haproxy.service

다운 받은 HAPROXY 서비스 예제 파일

'$CONFIG', 'EXTRAOPTS', 'PIDFILE'에 해당하는 내용을 입력한다. 필자의 경우 아래와 같이 설정하였다.

필자가 수정한 HAProxy 서비스 파일

아래의 명령어를 입력하여 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

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
728x90
반응형

댓글