본문 바로가기

리눅스

우분투 24.04에서 최신 버전의 HAProxy를 설치하는 방법

반응형

우분투 24.04에서 최신 버전의 HAProxy를 설치하는 방법

소스 코드 컴파일 설치

https://www.haproxy.org

필수 빌드 도구 설치

sudo apt update
sudo apt install -y build-essential libssl-dev zlib1g-dev libpcre3-dev \
  libsystemd-dev liblua5.3-dev libatomic-ops-dev make gcc g++ curl

소스 코드 다운로드 및 컴파일

최신 버전 다운로드

wget https://www.haproxy.org/download/3.2/src/haproxy-3.2.4.tar.gz
tar -xzf haproxy-3.2.4.tar.gz
cd haproxy-3.2.4

컴파일

make -j"$(nproc)" TARGET=linux-glibc USE_OPENSSL=1 USE_ZLIB=1 USE_PCRE=1

설치

sudo make install

haproxy 사용자 및 그룹 생성

sudo groupadd haproxy
sudo useradd -g haproxy -s /bin/false -d /nonexistent -r haproxy

디렉토리 생성 및 권한 설정

로그 디렉토리 생성

sudo mkdir -p /var/log/haproxy
sudo chown haproxy:haproxy /var/log/haproxy

chroot 디렉토리 생성

sudo mkdir -p /var/lib/haproxy
sudo chown haproxy:haproxy /var/lib/haproxy

런타임 디렉토리 생성

sudo mkdir -p /run/haproxy
sudo chown haproxy:haproxy /run/haproxy

systemd 서비스 파일 생성

sudo vim /etc/systemd/system/haproxy.service
[Unit]
Description=HAProxy Load Balancer
Documentation=man:haproxy(1)
Documentation=file:/usr/share/doc/haproxy/configuration.txt.gz
After=network-online.target rsyslog.service
Wants=network-online.target

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

[Install]
WantedBy=multi-user.target

systemd 데몬 재로드

sudo systemctl daemon-reload

설치 확인 및 서비스 관리

버전 확인

haproxy -v
oxy version 3.2.4-98813a1 2025/08/13 - https://haproxy.org/
Status: long-term supported branch - will stop receiving fixes around Q2 2030.
Known bugs: http://www.haproxy.org/bugs/bugs-3.2.4.html
Running on: Linux 6.8.0-79-generic #79-Ubuntu SMP PREEMPT_DYNAMIC Tue Aug 12 14:42:46 UTC 2025 x86_64

테스트 설정

sudo vim /etc/haproxy/haproxy.cfg
global
	log /dev/log	local0
	log /dev/log	local1 notice
	chroot /var/lib/haproxy
	stats socket /run/haproxy/admin.sock mode 660 level admin
	stats timeout 30s
	user haproxy
	group haproxy
	daemon

	# Default SSL material locations
	ca-base /etc/ssl/certs
	crt-base /etc/ssl/private

	# See: https://ssl-config.mozilla.org/#server=haproxy&server-version=2.0.3&config=intermediate
        ssl-default-bind-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
        ssl-default-bind-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256
        ssl-default-bind-options ssl-min-ver TLSv1.2 no-tls-tickets

defaults
	log	global
	mode	http
	option	httplog
	option	dontlognull
        timeout connect 5000
        timeout client  50000
        timeout server  50000
	errorfile 400 /etc/haproxy/errors/400.http
	errorfile 403 /etc/haproxy/errors/403.http
	errorfile 408 /etc/haproxy/errors/408.http
	errorfile 500 /etc/haproxy/errors/500.http
	errorfile 502 /etc/haproxy/errors/502.http
	errorfile 503 /etc/haproxy/errors/503.http
	errorfile 504 /etc/haproxy/errors/504.http

설정 파일 검증

sudo haproxy -c -f /etc/haproxy/haproxy.cfg

서비스 활성화 및 서비스 시작

sudo systemctl enable --now haproxy

상태 확인

sudo systemctl status haproxy
728x90

통계 페이지 설정

sudo vim /etc/haproxy/haproxy.cfg
listen stats
	bind *:9999
    mode http
    stats enable
    stats uri /stats
    stats refresh 10s
    stats auth admin:password123
    stats hide-version
    stats show-legends
    stats show-desc HAProxy\ Statistics
    stats show-node

설정 파일 검증

sudo haproxy -c -f /etc/haproxy/haproxy.cfg

HAProxy 재시작

sudo systemctl restart haproxy

통계 페이지 접속

ID: admin, Password: password123

http://192.168.10.101:9999/stats

HAProxy
HAProxy

우분투24

 

728x90
반응형