일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- haproxy
- SSL
- 방화벽
- mount
- docker
- centos7
- MariaDB
- HLS
- letsencrypt
- phpmyadmin
- Maria
- firewall
- nginx
- docker-compose
- mysql
- yum
- Tomcat
- db
- Cent
- vsftpd
- 인증서
- 도커
- youtube-dl
- ubuntu
- YouTube
- https
- iptables
- 8443
- CentOS
- haproxy.cfg
- Today
- Total
개발자의뇌
CentOS7 haproxy 원하는(최신) 버전 설치 본문
참조 : 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 |