웹사이트 검색

Debian 11에 HAProxy를 설치하는 방법


이 페이지에서

  1. 전제 조건
  2. 백엔드 웹 서버 설정
  3. HAProxy 설치
  4. HAProxy 구성
  5. HAProxy 확인\n
  6. 결론

HAProxy는 고가용성 및 로드 밸런싱을 위한 신뢰할 수 있는 무료 오픈 소스 솔루션입니다. 여러 애플리케이션 서버에 로드를 분산하고 요청 처리 작업을 단순화합니다. 모든 주요 Linux 운영 체제에 설치할 수 있습니다. 효율성, 신뢰성, 낮은 메모리 및 CPU 공간으로 인해 널리 사용됩니다.

이 게시물에서는 Debian 11 시스템에 HAProxy를 설치하는 방법을 설명합니다.

전제 조건

  • HAProxy용 Debian 11을 실행하는 서버.\n
  • Apache 백엔드 서버용 Debian 11을 실행하는 두 대의 서버.\n
  • 루트 암호는 모든 서버에서 구성됩니다.\n

백엔드 웹 서버 설정

이 자습서의 목적을 위해 두 개의 백엔드 Apache 서버를 설정해야 합니다.

첫 번째 백엔드 서버에서 다음 명령을 사용하여 Apache 패키지를 설치합니다.

apt-get install apache2 -y

Apache가 설치되면 다음 명령을 사용하여 샘플 Apache 인덱스 페이지를 생성합니다.

echo "<H1>Welcome to the first Apache Server</H1>" | tee /var/www/html/index.html

두 번째 백엔드 서버에서 다음 명령을 사용하여 Apache 패키지를 설치합니다.

apt-get install apache2 -y

다음으로 다음 명령을 사용하여 샘플 Apache 인덱스 페이지를 만듭니다.

echo "<H1>Welcome to the second Apache Server</H1>" | tee /var/www/html/index.html

완료되면 다음 단계로 진행할 수 있습니다.

HAProxy 설치

기본적으로 HAProxy는 Debian 11 기본 리포지토리에 포함되어 있습니다. 다음 명령을 실행하여 설치할 수 있습니다.

apt-get install haproxy -y

HAProxy가 설치되면 HAProxy 서비스를 시작하고 시스템 재부팅 시 시작되도록 활성화합니다.

systemctl start haproxy
systemctl enable haproxy

완료되면 다음 단계로 진행할 수 있습니다.

HAProxy 구성

다음으로 HAProxy 기본 구성 파일을 편집하고 백엔드 웹 서버를 정의해야 합니다.

nano /etc/haproxy/haproxy.cfg

다음 줄을 추가합니다.

frontend apache_front
        # Frontend listen port - 80
        bind *:80
        # Set the default backend
        default_backend    apache_backend_servers
        # Enable send X-Forwarded-For header
        option             forwardfor
  
# Define backend
backend apache_backend_servers                                                                                                                     
        # Use roundrobin to balance traffic
        balance            roundrobin
        # Define the backend servers
        server             backend01 192.168.1.10:80 check
        server             backend02 192.168.1.11:80 check

완료되면 파일을 저장하고 닫습니다.

여기서: 192.168.1.10은 첫 번째 Apache 백엔드 서버의 IP 주소이고 192.168.1.11은 두 번째 Apache 백엔드 서버의 IP 주소입니다.

그런 다음 HAProxy 서비스를 다시 시작하여 변경 사항을 적용합니다.

systemctl restart haproxy

이제 다음 명령을 사용하여 HAProxy의 상태를 확인할 수 있습니다.

systemctl status haproxy

다음과 같은 결과가 표시됩니다.

? haproxy.service - HAProxy Load Balancer
     Loaded: loaded (/lib/systemd/system/haproxy.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2021-11-07 03:47:14 UTC; 9s ago
       Docs: man:haproxy(1)
             file:/usr/share/doc/haproxy/configuration.txt.gz
    Process: 86678 ExecStartPre=/usr/sbin/haproxy -f $CONFIG -c -q $EXTRAOPTS (code=exited, status=0/SUCCESS)
   Main PID: 86680 (haproxy)
      Tasks: 3 (limit: 4679)
     Memory: 34.2M
        CPU: 61ms
     CGroup: /system.slice/haproxy.service
             ??86680 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -S /run/haproxy-master.sock
             ??86682 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -S /run/haproxy-master.sock

Nov 07 03:47:14 debian11 systemd[1]: Starting HAProxy Load Balancer...
Nov 07 03:47:14 debian11 haproxy[86680]: Proxy apache_front started.
Nov 07 03:47:14 debian11 haproxy[86680]: Proxy apache_front started.
Nov 07 03:47:14 debian11 systemd[1]: Started HAProxy Load Balancer.
Nov 07 03:47:14 debian11 haproxy[86680]: [NOTICE] 310/034714 (86680) : New worker #1 (86682) forked
Nov 07 03:47:14 debian11 haproxy[86680]: Proxy apache_backend_servers started.
Nov 07 03:47:14 debian11 haproxy[86680]: Proxy apache_backend_servers started.

HAProxy 확인

이 시점에서 HAProxy가 구성되어 실행 중입니다. 이제 HAProxy를 테스트할 시간입니다.

웹 브라우저를 열고 URL http://your-haproxy-ip를 입력합니다. HAProxy가 각 새로 고침 후 하나씩 백엔드 서버에 요청을 보내는 것을 볼 수 있습니다.

결론

축하합니다! Debian 11에 HAProxy를 성공적으로 설치했습니다. 이제 프로덕션 환경에서 HAProxy를 구현하여 웹 애플리케이션 성능 및 가용성을 높일 수 있습니다.