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_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 버전에서 추가/삭제/수정된 옵션들이 많이 있기 때문에 반드시 공식 매뉴얼 사이트인 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