Souce Install HAProxy 2.0 with TLS 1.3 on CentOS 7

새로운 HAProxy 2.0 LTS 버전이 출시되었으며, 메이저 버전이 바뀐만큼 다양한 기능들을 많이 추가되었다.

자세한 내용은 아래 공식 링크를 확인

HAProxy 2.0 and Beyond

 

의존성 패키지 설치

[root@172-19-10-106 /]# yum install -y make gcc gcc-c++ pcre-devel openssl-devel readline-devel systemd-devel zlib-devel

 

LUA 5.3 이상 설치
LUA 다운로드

[root@172-19-10-106 /]# cd /data/apps/dn
[root@172-19-10-106 dn]# wget https://www.lua.org/ftp/lua-5.3.5.tar.gz
[root@172-19-10-106 dn]# tar xvzf lua-5.3.5.tar.gz
[root@172-19-10-106 dn]# cd lua-5.3.5
[root@172-19-10-106 lua-5.3.5]# make linux test
[root@172-19-10-106 lua-5.3.5]# make install

 

tls 1.3 적용을 위해 openssl 1.1.1 이상 설치
openssl 다운로드

[root@172-19-10-106 lua-5.3.5]# cd /data/apps/dn
[root@172-19-10-106 dn]# wget https://www.openssl.org/source/openssl-1.1.1c.tar.gz
[root@172-19-10-106 dn]# tar xvzf openssl-1.1.1c.tar.gz
[root@172-19-10-106 dn]# cd openssl-1.1.1c
[root@172-19-10-106 openssl-1.1.1c]# ./config --prefix=/usr/local/openssl-1.1.1c shared
[root@172-19-10-106 openssl-1.1.1c]# make
[root@172-19-10-106 openssl-1.1.1c]# make install

 

Haproxy 다운로드
(2.0.0은 cookie 관련 버그로 인해 h2에 문제가 있으므로 2.0.1 이상 다운로드 권장)

[root@172-19-10-106 openssl-1.1.1c]# cd /data/apps/dn
[root@172-19-10-106 dn]# wget http://www.haproxy.org/download/2.0/src/haproxy-2.0.1.tar.gz

 

압축해제

[root@172-19-10-106 dn]# tar xvzf haproxy-2.0.1.tar.gz

 

컴파일

[root@172-19-10-106 dn]# cd haproxy-2.0.1
[root@172-19-10-106 haproxy-2.0.1]# make -j $(nproc) TARGET=linux-glibc USE_OPENSSL=1 SSL_LIB=/usr/local/openssl-1.1.1c/lib SSL_INC=/usr/local/openssl-1.1.1c/include USE_ZLIB=1 USE_LUA=1 LUA_LIB=/usr/local/lib/ LUA_INC=/usr/local/include/ USE_PCRE=1 USE_SYSTEMD=1
[root@172-19-10-106 haproxy-2.0.1]# make install

 

유저생성

[root@172-19-10-106 haproxy-2.0.1]# useradd -M -r -s /sbin/nologin haproxy

 

systemd 파일 생성
(LD_LIBRARY_PATH는 openssl 1.1.1을 따로 설치하였기 때문에 반드시 넣어줘야 한다.)
: vi /etc/systemd/system/haproxy.service

[Unit]
Description=HAProxy Load Balancer
After=network.target

[Service]
Environment=LD_LIBRARY_PATH=/usr/local/openssl-1.1.1c/lib/
Environment="CONFIG=/etc/haproxy/haproxy.cfg" "PIDFILE=/run/haproxy.pid" "EXTRAOPTS=-S /run/haproxy-master.sock"
ExecStartPre=/usr/local/sbin/haproxy -f $CONFIG -c -q $EXTRAOPTS
ExecStart=/usr/local/sbin/haproxy -Ws -f $CONFIG -p $PIDFILE $EXTRAOPTS
ExecReload=/usr/local/sbin/haproxy -f $CONFIG -c -q $EXTRAOPTS
ExecReload=/bin/kill -USR2 $MAINPID
KillMode=mixed
Restart=always
SuccessExitStatus=143
Type=notify

[Install]
WantedBy=multi-user.target

 

haproxy 환경설정 파일 디렉토리 생성

[root@172-19-10-106 haproxy-2.0.1]# mkdir -p /etc/haproxy

 

haproxy.cfg 파일은 본 사이트의 이전 글을 참조하여 작성해도 되지만, 이번에 2.0이 출시되면서 과거 버전들에서 dedicate 되었거나 추가/삭제/수정된 옵션들이 많이 있으니 반드시 공식 매뉴얼 링크를 참조

 

시작 등록 및 실행

[root@172-19-10-106 haproxy-2.0.1]# systemctl enable haproxy
[root@172-19-10-106 haproxy-2.0.1]# systemctl start haproxy

You may also like...

Subscribe
Notify of
guest

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x