개발자의뇌

CentOS7 haproxy 원하는(최신) 버전 설치 본문

개발/Linux

CentOS7 haproxy 원하는(최신) 버전 설치

devbrain 2019. 11. 1. 15:33

참조 : https://findstar.pe.kr/2018/08/14/fix-haproxy-reload-fail/

시스템에 대한 이해도가 높고, rsyslog 사용 및 서비스 무중단 처리에 대한 방법

 

참조 : https://www.lesstif.com/pages/viewpage.action?pageId=24445064

systemctl 사용하는 여러가지 방법들 잘 정리됨

 

참조 : https://github.com/haproxy/haproxy/blob/master/contrib/systemd/haproxy.service.in

haproxy systemctl 등록 스크립트

 

CentOS7 에서 yum 으로 haproxy 설치할 때 버전이 1.5x 버전이 설치된다.

 

그래서 다른 버전을 설치하려면 소스 컴파일을 하여 바이너리 생성하고 

 

systemd 스크립트를 작성하여 서비스에 등록해야 한다.

 

 

 

자, 지금부터 실습!

 

yum install -y epel-release   #저장소 업데이트

 

# haproxy 원하는 버전 고르기

http://www.haproxy.org/download/

 

# 나는 1.9 버전 다운로드

wget http://www.haproxy.org/download/1.9/src/haproxy-1.9.12.tar.gz 

 

tar -xzvf haproxy-1.9.12.tar.gz   # 압축해제

 

cd haproxy-1.9.12  # 소스 폴더 이동

 

# 2.2 버전 다운로드

wget www.haproxy.org/download/2.1/src/haproxy-2.1.7.tar.gz

 

# 빌드에 필요한 라이브러리 설치

yum install -y gcc openssl pcre-static pcre-devel systemd-devel openssl-devel

 

# 옵션넣어 haproxy 바이너리 생성

# 1.7 이하 버전에서는 USE_SYSTEMD 옵션이 먹지 않아서 systemctl 에 등록되지 않는다.

make TARGET=linux2628 USE_OPENSSL=1 USE_PCRE=1 USE_ZLIB=1 USE_SYSTEMD=1

 

# 2.0 이상 버전에서는 TARGET=linux2628 을 더 이상 사용할 수 없다. 아래처럼 해야 한다.

make TARGET=linux-glibc USE_OPENSSL=1 USE_PCRE=1 USE_ZLIB=1 USE_SYSTEMD=1    

 

./haproxy -v  # 생성된 haproxy 버전 확인

./haproxy -vv | grep -i systemd    # 넣은 옵션이 잘 반영되었는지 확인한다.

 

cp ./haproxy /usr/local/bin

 

#systemd 스크립트 작성

vi /usr/lib/systemd/system/haproxy.service

Description=HAProxy Load Balancer
After=network.target

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

[Install]
WantedBy=multi-user.target

 

mkdir /etc/haproxy

 

# 검색하여 haproxy.cfg 샘플을 구하여 입력한다.

vi /etc/haproxy/haproxy.cfg

 

systemctl daemon-reload  # 스크립트 인식하기

 

systemctl start haproxy  # 설치된 haproxy 동작시켜보기

 

systemctl status haproxy  # 시작된 haproxy 성공 확인, active(running) 보이면 성공

 

systemctl enable haproxy  # 부팅시마다 서비스 활성화 하기

 

systemctl stop haproxy  # 현재 실행되고 있는 haproxy stop

 

 

systemctl 등록 파일은 아래 깃허브를 참조한다.

https://github.com/haproxy/haproxy/blob/master/contrib/systemd/haproxy.service.in

 

haproxy 버전 차이가 크면 /etc/haproxy/haproxy.cfg 가 맞지 않아 오류가 발생할 수 있으므로 

 

/usr/local/bin/haproxy -f /etc/haproxy/haproxy.cfg # 명령으로 디버깅을 하여 오류를 수정한다.

/usr/local/bin/haproxy -f /etc/haproxy/haproxy.cfg -c # cfg 문법 체크는 -c 옵션을 붙인다.

 

위 방법으로 손쉽게? haproxy 설치와 원하는 버전을 설치하여 사용하는 방법을 알아보았다.

 

'개발 > Linux' 카테고리의 다른 글

mysql/mariadb 유용한 명령어  (0) 2019.12.02
CentOS7 tomcat8 설치하기  (0) 2019.11.04
lvm2 mount error 해결  (0) 2019.07.10
CentOS7 타임존 변경  (0) 2019.06.19
Too many open files 에러, 소켓 제한 늘리기  (0) 2019.06.07
Comments