Source Install HAProxy 2.0 with TLS 1.3 on CentOS 7

HAProxy 2.0 LTS 소스 인스톨(컴파일) 설치 가이드

HAProxy 2.0 LTS 버전이 릴리즈 되었습니다. HAProxy 는 소프트웨어 로드발란서 중에서 가장 유명한 오픈소스 입니다. Souce Install HAProxy 1.8 on CentOS 7 | Umount Blog 에서 1.8 버전의 설치 방법에 대해서 다루어 보았습니다.

이번에 출시된 HAProxy 2.0 LTS 버전은 메이저 버전이 바뀐 만큼 h2(http2), gRPC 지원 등, 다양한 기능들이 많이 추가 및 개선 되었습니다. 자세한 내용은 아래 공식 블로그인 HAProxy 2.0 and Beyond – HAProxy Technologies 에서 확인해 주시기 바랍니다.

이 가이드에서는 새롭게 출시된 2.0 버전과 함께 TLS 1.3 을 적용할 수 있게 설치하는 방법에 대해서 알아보도록 하겠습니다.

의존성 패키지 설치

[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_PATHopenssl 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 버전에서 추가/삭제/수정된 옵션들이 많이 있기 때문에 반드시 공식 매뉴얼 사이트인 HAProxy version 2.0.20 – Starter Guide (cbonte.github.io) 페이지를 확인하여 작성 해 주시기 바랍니다.

시작 등록 및 실행

[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