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

+ Recent posts