728x90
반응형
HAProxy 설치는 OS 기본 yum으로 설치 가능
# yum install haproxy
패키지로 설치했을 경우의 설정 파일은 /etc/haproxy/haproxy.cfg. 오리지날 설정 파일의 복사를 해 두면 된다.
# cp /etc/haproxy/haproxy.cfg{,-orig}
haproxy.cfg
설정 단위
설정 파일에서기본 단위는 밀리 초
마이크로초. 1마이크로 초=1/1000000초 |
밀리 초. 1밀리 초=1/1000초.이것이 기본 단위. |
초. 1s=1000ms |
부분. 1m=60s=60000ms |
때. 1h=60m=3600s=3600000ms |
날. 1d=24h=1440m=86400s=86400000ms |
섹션
설정 파일에는 섹션이 존재한다.
defaults <name>frontend <name>backend <name>listen <name>
다른 섹션에서 사용되는 공통의 디폴트 설정. 나중에 이어defaults섹션에서 값을 초기화할 수 있다. |
클라이언트의 접속을 접수 소켓의 정의 |
프록시에서 접속 백 엔드 측의 서버의 정의 |
frontend와 backend의 설정을 정리하여 기술할 수 있다.TCP모드의 트래픽만으로 사용이라고 쓰기 쉽다. |
name임의의 값을 사용할 수 있다.가독성을 높이도록 설정하는 게 권장.
사용할 수 있는 것은
- 대 소문자(대문자와 소문자는 구별된다)
- 숫자
- '-' (dash), '_' (underscore) , '.' (dot), ':' (colon)
설정 키 워드
각 키워드가 어느 섹션에서 이용 가능한지의 목록.
global파라미터
설정 항목은 이하.
Globals - haproxy-docs - Global Parameters - HAProxy Documentation - Google Project Hosting
maxconnulimit-n
프로세스가 함께 받는 최대 연결 수.ulimit-n값은 이 값에 맞추어 자동적으로 조정된다. |
프로세스가 오픈할 수 있는 최대 파일 수.자동으로 계산된다. |
HAProxy의 status취득
HAProxy에서는 접속 상황 통계 보고서 화면이 존재한다.
설정함으로써 web페이지로 표시할 수 있다.
구체적으로는 아래를 haproxy.cfg에 추가한다.
#---------------------------------------------------------------------
# HAProxy 상태
#---------------------------------------------------------------------
listen hastats
mode http
bind 127.0.0.1:8080
bind 192.168.101.186:8080
stats enable
stats show-legends
stats uri /haproxy-status
- hastats
이름에 대해서는 임의 - stats uri
위상을 표시하는 URI. 자유롭게 설정할 수 있다.
이로써 127.0.0.1:8080/haproxy-status에 접속함으로써 정보를 받을 수 있게 된다.
Munin등으로 모니터링 하는 경우 이 설정으로 OK.
외부 참조하는 경우는 listen하는 IP주소의 bind설정을 추가하고 인증 설정한다.
참고로 127.0.0.1:8080/haproxy-status;csv로 접근한 경우는 CSV형식으로 데이터의 취득이 가능(Munin에서의 데이터 수집에서 URL등에서 사용한다).
728x90
haproxy.cfg 예
#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global
# syslog경유로(log는 최대 2개까지 기술 가능)
log log-0 local2
# chroot 환경에서 움직입니다.
chroot /var/lib/haproxy
# pid화일이요
pidfile /var/run/haproxy.pid
# 이 값에 의해 오픈하는 최대 파일의 수가 자동으로 조정됩니다
maxconn 30000
# 동작시키는 유저와 그룹입니다.
user haproxy
group haproxy
# 데몬으로서 움직입니다
daemon
# turn on stats unix socket
stats socket /var/lib/haproxy/stats
#---------------------------------------------------------------------
# 이 섹션의 설정 값은 이후 섹션에 설정되지 않는 경우의 값입니다
#---------------------------------------------------------------------
defaults
# 디폴트tcp입니다
mode tcp
log global
option dontlognull
option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout check 5s
maxconn 300000
#---------------------------------------------------------------------
# http 프론트엔드 입니다.
#---------------------------------------------------------------------
frontend Connect-http
mode http
bind 219.112.248.20:80
bind 192.168.101.186:80
option httplog
option http-server-close
timeout http-request 10s
timeout http-keep-alive 10s
# backend
default_backend Connect-AP
#---------------------------------------------------------------------
# backend 서버 정의(for Connect AP)입니다.
#---------------------------------------------------------------------
backend Connect-AP
mode http
balance roundrobin
option httpchk /check.html
server msg-ap-0 192.168.101.133 check port 80
server msg-ap-1 192.168.101.135 check port 80
#---------------------------------------------------------------------
# HAProxy의 상태 입니다.
#---------------------------------------------------------------------
listen hastats
mode http
bind 127.0.0.1:8080
bind 192.168.101.186:8080
stats enable
stats show-legends
stats uri /haproxy-status
728x90
300x250
'IT > Haproxy' 카테고리의 다른 글
HAProxy와 keepalived와의 연계 (0) | 2021.08.09 |
---|