본문 바로가기
공부/리눅스 서버

[Linux] HAProxy loadbalancer configuration

by kyoung-ho 2024. 7. 2.
반응형

HAProxy를 사용하여 웹 서버를 이중화하는 것은 효과적인 고가용성 솔루션을 구현하는 좋은 방법입니다. HAProxy는 로드 밸런싱과 함께 트래픽을 웹 서버의 여러 인스턴스에 분산시키는 역할을 수행하면서, 서버 중 하나가 실패할 경우 자동으로 트래픽을 정상 서버로 전달합니다. 

1. HAProxy 설치

먼저, 사용하고 있는 시스템에 HAProxy를 설치해야 합니다. 대부분의 Linux 배포판에서는 패키지 관리자를 통해 설치할 수 있습니다.

Ubuntu/Debian 기반 시스템:

sudo apt-get update sudo apt-get install haproxy
 

CentOS/RHEL 기반 시스템:

sudo yum install haproxy

2. HAProxy 설정

설치 후, HAProxy의 설정 파일(haproxy.cfg)을 수정하여 로드 밸런싱을 설정합니다. 이 파일은 일반적으로 /etc/haproxy/ 디렉토리 안에 있습니다.

 

기본 설정 예시:

 
global
    log /dev/log local0
    log /dev/log local1 notice
    maxconn 4096
    user haproxy
    group haproxy
    daemon

defaults
    log global
    mode http
    option httplog
    option dontlognull
    timeout connect 5000ms
    timeout client 50000ms
    timeout server 50000ms

frontend http_front
    bind *:80
    stats uri /haproxy?stats
    default_backend http_back

backend http_back
    balance roundrobin
    server web1 192.168.0.101:80 check
    server web2 192.168.0.102:80 check
  • frontend: 클라이언트로부터의 연결을 수신하는 섹션입니다. 이 예제에서는 모든 IP의 80번 포트에 바인드하고, /haproxy?stats에서 HAProxy의 통계 페이지를 볼 수 있습니다.
  • backend: 실제 서비스를 처리하는 서버(웹 서버)의 그룹입니다. balance roundrobin은 로드 밸런싱 알고리즘으로 라운드 로빈 방식을 사용합니다. server 라인은 각 웹 서버의 IP 주소와 포트를 지정하며 check 옵션은 서버의 상태를 주기적으로 확인합니다.

3. HAProxy 서비스 시작 및 활성화

설정을 완료한 후, HAProxy 서비스를 시작하고 시스템 부팅 시 자동으로 시작하도록 설정합니다.

Ubuntu/Debian:

sudo systemctl enable haproxy
sudo systemctl start haproxy
 

CentOS/RHEL:

sudo systemctl enable haproxy
sudo systemctl start haproxy

4. 테스트 및 모니터링

설정이 완료된 후에는 웹 브라우저를 사용하여 로드 밸런서의 IP 또는 도메인 주소로 접속하여 설정이 제대로 작동하는지 확인합니다. HAProxy의 통계 페이지(/haproxy?stats)를 통해 서버의 상태와 트래픽 분포를 모니터링할 수 있습니다.

이 단계를 통해 HAProxy를 사용하여 웹 서버 이중화를 구성하고, 고가용성 환경을 실현할 수 있습니다. 실패한 서버를 자동으로 감지하고, 사용 가능한 서버로 트래픽을 자동 전환하여 서비스 중단 시간을 최소화할 수 있습니다.

 
반응형

댓글