
Rocky Linux 8에서 HAProxy를 설치 및 구성하는 방법
2022-10-18 last update
5 minutes reading linux web server인터넷에 응용 프로그램을 배포할 때 응용 프로그램의 가용성, 확장성 및 성능은 더 나은 사용자 경험을 위해 매우 중요합니다. 로드 밸런싱, 클러스터링 및 프록시와 같이 중복성을 도입하는 많은 기술이 있습니다.
HAProxy는 트래픽이 많은 웹 사이트를 위해 설계된 안정적인 무료 오픈 소스 로드 밸런서입니다. 들어오는 트래픽을 여러 백엔드 서버에 분산하여 로드 밸런싱합니다.
이 기사에서는 Rocky Linux 8에 HAProxy를 설치하는 방법을 보여줍니다.
이 자습서의 목적을 위해 다음 설정을 사용합니다.
서버 IP 주소
HA프록시 172.16.10.10
백엔드1 172.16.10.11
백엔드2 172.16.10.12
RockyLinux 8을 실행하는 서버.
루트 암호는 서버에 구성됩니다.
기본적으로 HAProxy 패키지는 Rocky Linux 8 기본 리포지토리에서 사용할 수 있습니다. 다음 명령으로 설치할 수 있습니다.
다음으로/etc/haproxy/haproxy.cfg 파일을 편집하고 두 섹션 프런트엔드와 백엔드를 수정해야 합니다. 프런트엔드 섹션에서 HAProxy IP의 포트, 통계 URI 및 백엔드 이름을 정의해야 합니다. 백엔드 섹션에서 로드 밸런싱 알고리즘, 백엔드 서버의 이름, IP 및 포트를 정의해야 합니다.
다음으로 모든 서버에서 firewalld를 구성하고 방화벽을 통해 포트 80을 허용해야 합니다.
다음 명령을 실행하여 포트 80을 허용할 수 있습니다.
다음으로 두 백엔드 서버에 Apache 서버를 설치해야 합니다. 다음 명령어를 실행하여 Apache 서버를 설치합니다.
첫 번째 백엔드에서 다음 명령을 사용하여 index.html 파일을 편집합니다.
두 번째 백엔드에서 다음 명령을 사용하여 index.html 파일을 편집합니다.
이 시점에서 HAProxy는 로드 밸런싱 알고리즘을 기반으로 들어오는 모든 요청을 백엔드 서버로 전달하도록 구성됩니다. 이제 HAProxy가 제대로 작동하는지 확인할 차례입니다.
웹 브라우저를 열고 URL http://172.16.10.10에 HAProxy IP를 입력합니다. 첫 번째 Apache 웹 서버 페이지가 표시되어야 합니다.

다음으로 동일한 페이지를 다시 새로 고치면 두 번째 Apache 웹 서버 페이지가 표시됩니다.

이것은 HAProxy가 예상대로 작동하고 두 백엔드 서버 간에 트래픽을 분산하고 있음을 확인합니다.
축하합니다! Rocky Linux 8에 HAProxy 로드 밸런서를 성공적으로 설치하고 구성했습니다. 이제 프로덕션 환경에서 HAProxy를 구현하여 고성능 및 확장성을 달성할 수 있습니다.
HAProxy는 트래픽이 많은 웹 사이트를 위해 설계된 안정적인 무료 오픈 소스 로드 밸런서입니다. 들어오는 트래픽을 여러 백엔드 서버에 분산하여 로드 밸런싱합니다.
이 기사에서는 Rocky Linux 8에 HAProxy를 설치하는 방법을 보여줍니다.
이 자습서의 목적을 위해 다음 설정을 사용합니다.
서버 IP 주소
HA프록시 172.16.10.10
백엔드1 172.16.10.11
백엔드2 172.16.10.12
전제 조건
HAProxy 설치
기본적으로 HAProxy 패키지는 Rocky Linux 8 기본 리포지토리에서 사용할 수 있습니다. 다음 명령으로 설치할 수 있습니다.
dnf install haproxy -yHAProxy가 설치되면 HAProxy 서비스를 시작하고 시스템 재부팅 시 시작되도록 활성화합니다.
systemctl start haproxy
systemctl enable haproxy
HAProxy 구성
다음으로/etc/haproxy/haproxy.cfg 파일을 편집하고 두 섹션 프런트엔드와 백엔드를 수정해야 합니다. 프런트엔드 섹션에서 HAProxy IP의 포트, 통계 URI 및 백엔드 이름을 정의해야 합니다. 백엔드 섹션에서 로드 밸런싱 알고리즘, 백엔드 서버의 이름, IP 및 포트를 정의해야 합니다.
nano /etc/haproxy/haproxy.cfg다음 섹션을 수정합니다.
frontend http_balancer bind 172.16.10.10:80 option http-server-close option forwardfor stats uri /haproxy?stats default_backend Apache_webservers backend apache_webservers mode http balance roundrobin option httpchk HEAD / HTTP/1.1\r\nHost:\ localhost server apache1 172.16.10.11:80 check server apache2 172.16.10.12:80 check완료되면 파일을 저장하고 닫은 다음/etc/rsyslog.conf 파일을 편집해야 합니다.
nano /etc/rsyslog.conf다음 줄의 주석 처리를 제거합니다.
module(load="imudp") input(type="imudp" port="514")파일을 저장하고 닫은 다음 다음 명령을 사용하여 rsyslog에 대한 haproxy.conf 파일을 만듭니다.
nano /etc/rsyslog.d/haproxy.conf다음 줄을 추가합니다.
local2.=info /var/log/haproxy-access.log local2.notice /var/log/haproxy-info.log그런 다음 rsyslog 서비스를 시작하고 시스템 재부팅 시 시작되도록 활성화합니다.
systemctl start rsyslog마지막으로 HAProxy 서비스를 다시 시작하여 변경 사항을 적용합니다.
systemctl enable rsyslog
systemctl restart haproxy다음 명령을 사용하여 HAProxy 서비스의 상태를 확인할 수도 있습니다.
systemctl status haproxy다음 출력이 표시되어야 합니다.
? haproxy.service - HAProxy Load Balancer Loaded: loaded (/usr/lib/systemd/system/haproxy.service; disabled; vendor preset: disabled) Active: active (running) since Tue 2021-08-03 03:10:37 EDT; 1min 16s ago Process: 44032 ExecStartPre=/usr/sbin/haproxy -f $CONFIG -c -q $OPTIONS (code=exited, status=0/SUCCESS) Main PID: 44036 (haproxy) Tasks: 2 (limit: 12524) Memory: 3.1M CGroup: /system.slice/haproxy.service ??44036 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid ??44111 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid Aug 03 03:10:36 RockyLinux8 systemd[1]: Starting HAProxy Load Balancer... Aug 03 03:10:37 RockyLinux8 systemd[1]: Started HAProxy Load Balancer.
방화벽 구성
다음으로 모든 서버에서 firewalld를 구성하고 방화벽을 통해 포트 80을 허용해야 합니다.
다음 명령을 실행하여 포트 80을 허용할 수 있습니다.
firewall-cmd --permanent --add-port=80/tcp다음으로 firewalld 서비스를 다시 로드하여 변경 사항을 적용합니다.
firewall-cmd --reload
백엔드 서버 구성
다음으로 두 백엔드 서버에 Apache 서버를 설치해야 합니다. 다음 명령어를 실행하여 Apache 서버를 설치합니다.
dnf install httpd -yApache 서버가 설치되면 Apache 서비스를 시작하고 시스템 재부팅 시 시작되도록 활성화합니다.
systemctl start httpd다음으로 두 백엔드 서버에서 기본 index.html 파일을 수정해야 합니다.
systemctl enable httpd
첫 번째 백엔드에서 다음 명령을 사용하여 index.html 파일을 편집합니다.
nano /usr/share/httpd/noindex/index.html모든 줄을 제거하고 다음 줄을 추가합니다.
Welcome to First Apache Web Server!완료되면 파일을 저장하고 닫습니다.
두 번째 백엔드에서 다음 명령을 사용하여 index.html 파일을 편집합니다.
nano /usr/share/httpd/noindex/index.html모든 줄을 제거하고 다음 줄을 추가합니다.
Welcome to Second Apache Web Server!완료되면 파일을 저장하고 닫습니다.
HAProxy 확인
이 시점에서 HAProxy는 로드 밸런싱 알고리즘을 기반으로 들어오는 모든 요청을 백엔드 서버로 전달하도록 구성됩니다. 이제 HAProxy가 제대로 작동하는지 확인할 차례입니다.
웹 브라우저를 열고 URL http://172.16.10.10에 HAProxy IP를 입력합니다. 첫 번째 Apache 웹 서버 페이지가 표시되어야 합니다.

다음으로 동일한 페이지를 다시 새로 고치면 두 번째 Apache 웹 서버 페이지가 표시됩니다.

이것은 HAProxy가 예상대로 작동하고 두 백엔드 서버 간에 트래픽을 분산하고 있음을 확인합니다.
결론
축하합니다! Rocky Linux 8에 HAProxy 로드 밸런서를 성공적으로 설치하고 구성했습니다. 이제 프로덕션 환경에서 HAProxy를 구현하여 고성능 및 확장성을 달성할 수 있습니다.