웹사이트 검색

Ubuntu 22.04에서 HAProxy를 설치하고 구성하는 방법


이 페이지에서

  1. 전제 조건
  2. Apache 웹 서버를 백엔드 서버로 설정
  3. HAProxy 설치
  4. HAProxy 구성
  5. HAProxy 테스트
  6. 결론

HAProxy는 High Availability Proxy의 약자이기도 하며 최신 애플리케이션 아키텍처를 단순화하고 보호하도록 설계된 무료 오픈 소스 로드 밸런서 및 프록시 솔루션입니다. 이를 통해 웹 서버는 들어오는 요청을 여러 끝점에 분산시킬 수 있습니다. 너무 많은 동시 연결이 단일 서버의 기능을 과포화시키는 경우 매우 유용합니다. 효율성, 신뢰성, 낮은 메모리 및 CPU 공간으로 인해 인기를 얻고 있습니다.

이 게시물에서는 Ubuntu 22.04에서 HAProxy를 설치하는 방법에 대해 설명합니다. div-gpt-ad-howtoforge_com-medrectangle-3-0;var ffid=1;var alS=1021%1000;var container=document.getElementById(slotId);container.style.width=100%;var ins=document. createElement(ins);ins.id=slotId+-asloaded;ins.className=adsbygoogle ezasloaded;ins.dataset.adClient=pid;ins.dataset.adChannel=cid;if(ffid==2){ins.dataset.fullWidthResponsive= 진실;}

전제 조건

  • HAProxy용 Ubuntu 22.04를 실행하는 서버.\n
  • Apache 백엔드 서버용 Ubuntu 22.04를 실행하는 서버 2대.\n
  • 루트 암호는 모든 서버에서 구성됩니다.\n

Apache 웹 서버를 백엔드 서버로 설정

먼저 자습서를 수행하려면 두 개의 Apache 웹 서버를 백엔드 서버로 설정해야 합니다.

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

apt-get install apache2 -y

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

echo "<H1>Success! This is my first Apache Server</H1>" | tee /var/www/html/index.html

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

apt-get install apache2 -y

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

echo "<H1>Success! This is my second Apache Server</H1>" | tee /var/www/html/index.html

완료되면 HAProxy 서버 설치를 진행할 수 있습니다.

HAProxy 설치

기본적으로 HAProxy는 Ubuntu 22.04 기본 저장소에 포함되어 있습니다. 다음 명령을 실행하여 설치할 수 있습니다.

apt-get install haproxy -y

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

systemctl start haproxy
systemctl enable haproxy

완료되면 HAProxy 구성을 진행할 수 있습니다.

HAProxy 구성

이 시점에서 HAProxy가 설치되어 실행 중입니다. 이제 HAProxy 기본 구성 파일을 편집하고 백엔드 웹 서버를 정의해야 합니다.

nano /etc/haproxy/haproxy.cfg

두 백엔드 Apache 서버를 모두 추가합니다.

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 172.16.0.200:80 check
        server             backend02 172.16.0.201:80 check

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

여기서: 172.16.0.200은 첫 번째 Apache 백엔드 서버의 IP 주소이고 172.16.0.201은 두 번째 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 Mon 2022-07-11 09:03:45 UTC; 45s ago
       Docs: man:haproxy(1)
             file:/usr/share/doc/haproxy/configuration.txt.gz
   Main PID: 48217 (haproxy)
      Tasks: 2 (limit: 2242)
     Memory: 71.3M
        CPU: 143ms
     CGroup: /system.slice/haproxy.service
             ??48217 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -S /run/haproxy-master.sock
             ??48219 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -S /run/haproxy-master.sock

Jul 11 09:03:45 ubuntu2204 systemd[1]: Starting HAProxy Load Balancer...
Jul 11 09:03:45 ubuntu2204 haproxy[48217]: [NOTICE]   (48217) : New worker #1 (48219) forked
Jul 11 09:03:45 ubuntu2204 systemd[1]: Started HAProxy Load Balancer.

테스트 HAProxy

이 시점에서 HAProxy가 구성되어 실행 중입니다. 이제 HAProxy가 작동하는지 여부를 확인할 시간입니다.

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

결론

이 게시물에서는 HAProxy 서버를 설치하고 구성하여 두 개의 Apache 웹 서버에 부하를 분산시키는 방법을 보여주었습니다. 우분투 22.04에서. 이제 프로덕션 환경에서 HAProxy를 구현하여 웹 애플리케이션 성능 및 가용성을 높일 수 있습니다.