CentOS 8에서 Nginx용 로드 밸런서로 HAProxy를 설정하는 방법

Centos 8eseo Nginxyong Lodeu Baelleonseolo Haproxyleul Seoljeonghaneun Bangbeob



고가용성 프록시(HAProxy라고도 함)는 가볍고 빠른 로드 밸런서로서 프록시 서버로도 사용됩니다. 로드 밸런서로서 특정 기준을 사용하여 여러 웹 서버에 들어오는 웹 트래픽을 분산시키는 데 중요한 역할을 합니다. 그렇게 함으로써 단일 웹 서버에 과부하가 걸릴 수 있는 동시 요청이 너무 많은 경우 고가용성과 내결함성을 보장합니다.

HaProxy는 Tumblr, GitHub 및 StackOverflow와 같은 인기 사이트에서 사용됩니다. 이 가이드에서는 Nginx를 사용하여 구동되는 웹 서버 설정에 HAProxy를 설치하는 과정을 안내합니다.

랩 설정

표시된 CentOS 7 서버 인스턴스 3개







호스트 이름 IP 주소

부하 분산기 3.17.12.132
server_01 3.19.229.234
server_02 3.17.9.217

1단계: 로드 밸런서에 대한 /etc/hosts 파일 편집

시작하려면 로드 밸런서 시스템에 로그인하고 표시된 대로 두 웹 서버의 호스트 이름과 IP 주소를 포함하도록 /etc/hosts 파일을 수정합니다.



$ 왜냐하면 / / 호스트
3.19.229.234 서버_01
3.17.9.217 서버-02



완료되면 변경 사항을 저장하고 구성 파일을 종료하십시오.





이제 각 웹 서버로 이동하여 /기타/호스트 로드 밸런서의 IP 주소와 호스트 이름이 포함된 파일

3.17.12.132 로드 밸런서

그런 다음 server_01에서 부하 분산기를 핑할 수 있는지 확인합니다.



마찬가지로 server_02에서

또한 로드 밸런서에서 서버를 ping할 수 있는지 확인하십시오.

완벽한 ! 모든 서버가 로드 밸런서와 통신할 수 있습니다!

2단계: 로드 밸런서에 HA 프록시 설치 및 구성

HA 프록시는 CentOS 공식 리포지토리에서 쉽게 사용할 수 있으므로 yum 또는 dnf 패키지 관리자를 사용하여 설치합니다.

그러나 항상 그렇듯이 먼저 시스템을 업데이트하십시오.

# 냠 업데이트

다음으로 표시된 대로 HA 프록시를 설치합니다.

# 냠 설치 하프록시

성공적으로 설치되면 haproxy 디렉터리로 이동합니다.

# CD / / 하프록시

모범 사례에서는 수정하기 전에 모든 구성 파일을 백업해야 합니다. 그래서 백업 haproxy.cfg 파일 이름을 변경하여.

# mv haproxy.cfg haproxy.cfg.bak

다음으로 진행하여 구성 파일을 엽니다.

왜냐하면 haproxy.cfg

표시된 대로 수정해야 합니다.

#------------------------------------------------- --------------------
# 전역 설정
#------------------------------------------------- --------------------
글로벌
로그 127.0.0.1 local2 #로그 구성

chroot / 였다 / 라이브러리 / 하프록시
pidfile / 였다 / 운영 / haproxy.pid
맥스콘 4000
사용자 하프록시 #Haproxy는 사용자 및 그룹 'haproxy'에서 실행 중입니다.
그룹 하프록시
악마

# 통계 유닉스 소켓을 켭니다.
통계 소켓 / 였다 / 라이브러리 / 하프록시 / 통계

#------------------------------------------------- --------------------
# 모든 'listen' 및 'backend' 섹션에서 사용할 공통 기본값
# 블록에 지정되지 않은 경우 사용
#------------------------------------------------- --------------------
기본값
모드 http
로그 글로벌
옵션 httplog
옵션 dontlognull
옵션 http-server-close
옵션 전달 127.0.0.0 제외 / 8
옵션 재발송
재시도
시간 초과 http 요청 10초
타임아웃 대기열 1분
시간 초과 연결 10초
시간 초과 클라이언트 1분
타임아웃 서버 1분
시간 초과 http-keep-alive 10초
시간 초과 확인 10초
맥스콘 3000

#------------------------------------------------- --------------------
#HAProxy 모니터링 구성
#------------------------------------------------- --------------------
haproxy3 모니터링 듣기 * : 8080 #Haproxy 모니터링은 포트 8080에서 실행됩니다.
모드 http
옵션 전달
옵션 httpclose
통계 ~할 수 있게 하다
통계 쇼 범례
통계 새로고침 5초
통계 우리 / 통계 HAProxy 모니터링을 위한 #URL
통계 영역 Haproxy\ 통계
통계 인증 Password123: Password123 #모니터링 대시보드 로그인을 위한 사용자 및 비밀번호
통계 관리자 만약 진실
default_backend 앱-메인 #백엔드 모니터링을 위한 선택사항입니다.

#------------------------------------------------- --------------------
# 프런트엔드 구성
#------------------------------------------------- --------------------
프론트엔드 메인
묶다 * : 80
옵션 http-server-close
옵션 전달
default_backend 앱-메인

#------------------------------------------------- --------------------
# 균형 알고리즘으로 백엔드 라운드 로빈
#------------------------------------------------- --------------------
백엔드 앱 메인

균형 라운드 로빈 #밸런스 알고리즘

옵션 httpchk 헤드 / HTTP / 1.1 \r\n호스트:\ localhost
#서버 응용 프로그램이 정상 상태인지 확인 - 200 상태 코드

서버 server_01 3.19.229.234: 80 확인하다 #Nginx1

서버 server_02 3.17.9.217: 80 확인하다 #Nginx2

마지막 두 줄에 표시된 대로 웹 서버 호스트 이름과 IP 주소를 수정해야 합니다. 변경 사항을 저장하고 종료합니다.

다음 단계는 HAProxy 통계를 기록할 수 있도록 Rsyslog를 구성하는 것입니다.

# 왜냐하면 / / rsyslog.conf

UDP 연결을 허용하려면 아래 줄의 주석을 제거하십시오.

$ModLoad imudp
$UDPServerRun 514

다음으로 진행하여 새 구성 파일을 만듭니다. haproxy.conf

# 왜냐하면 / / rsyslog.d / haproxy.conf

다음 줄을 붙여넣고 저장하고 종료합니다.

local2.=정보 / 였다 / 통나무 / haproxy-access.log #액세스 로그용
local2.notice / 였다 / 통나무 / haproxy-info.log #서비스 안내 - 백엔드, 로드밸런서

변경 사항을 적용하려면 다음과 같이 rsyslog 데몬을 다시 시작하십시오.

# systemctl 재시작 rsyslog

그런 다음 HAProxy를 시작하고 활성화하십시오.

# systemctl 시작 rsyslog
# systemctl 활성화 rsyslog

HAProxy가 실행 중인지 확인

# systemctl 상태 rsyslog

3단계: Nginx 설치 및 구성

이제 남은 부분은 Nginx 설치뿐입니다. 각 서버에 로그인하고 먼저 시스템 패키지를 업데이트합니다.

# 냠 업데이트

다음 설치 EPEL(Enterprise Linux용 추가 패키지)

# 냠 설치 따뜻한 릴리스

Nginx를 설치하려면 다음 명령을 실행합니다.

# 냠 설치 nginx

다음으로 Nginx를 시작하고 활성화하십시오.

# systemctl 시작 nginx
# systemctl nginx 활성화

그런 다음 로드 밸런서가 두 서버 간에 웹 트래픽을 분산할 수 있는 방법을 시연하거나 시뮬레이션하기 위해 두 경우 모두 index.html 파일을 수정합니다.

server_01의 경우

# 에코 'server_01. 이봐! 첫 번째 웹 서버에 오신 것을 환영합니다' > index.html

server_02의 경우

# 에코 'server_02. 이봐! 두 번째 웹 서버에 오신 것을 환영합니다' > index.html

변경 사항을 적용하려면 Nginx를 다시 시작하십시오.

# systemctl 재시작 nginx

4단계: 로드 밸런서가 작동하는지 테스트

마침내 구성이 작동하는지 확인하려는 지점에 도달했습니다. 따라서 로드 밸런서에 로그인하고 curl 명령을 반복적으로 실행합니다.

# 컬 3.17.12.132

server_01 및 server_02의 index.html 값을 표시하는 번갈아 출력이 터미널에 표시되어야 합니다.

이제 웹 브라우저를 사용하여 테스트해 보겠습니다. 로드 밸런서의 IP 주소 찾아보기

http: // 로드 밸런서-IP-주소

첫 번째 페이지에는 모든 웹 서버의 콘텐츠가 표시됩니다.


이제 웹 페이지를 새로고침하고 다른 웹 서버의 콘텐츠가 표시되는지 확인합니다.

완벽한 ! 로드 밸런스는 두 웹 서버 간에 IP 트래픽을 균등하게 분배합니다!
이것으로 CentOS 8에서 HAProxy를 설치하고 구성하는 방법에 대한 이 자습서를 마무리합니다. 귀하의 피드백에 감사드립니다.