웹사이트 검색

RHEL/CentOS에서 'POUND'를 사용하여 웹 서버 부하 분산 설정


POUND는 ITSECURITY Company에서 개발한 로드 밸런싱 프로그램입니다. 여러 서버에 로드를 분산하기 위해 웹 서버 로드 밸런서로 사용할 수 있는 경량 오픈 소스 역방향 프록시 도구입니다. POUND는 최종 사용자에게 매우 편리하고 작업을 올바르게 수행하는 몇 가지 이점을 제공합니다.

  1. 가상 호스트를 지원합니다.
  2. 구성 가능.
  3. 백엔드 서버가 실패하거나 실패에서 복구되면 이를 자동으로 감지하고 이에 따라 로드 밸런싱 결정을 내립니다.
  4. 잘못된 요청을 거부합니다.
  5. 지정된 브라우저나 웹서버가 없습니다.

이 해킹을 어떻게 수행할 수 있는지 살펴보겠습니다.

우선 이 작업을 수행하는 방법을 더 잘 이해하려면 시나리오가 필요합니다. 따라서 두 개의 웹 서버가 있고 요청의 균형을 유지해야 하는 하나의 게이트웨이 서버가 게이트웨이 서버에서 웹 서버로 들어오는 시나리오를 사용하겠습니다.


Pound Gateway Server : 172.16.1.222
Web Server 01 : 172.16.1.204
Web Server 02 : 192.168.1.161

1단계: 게이트웨이 서버에 파운드 로드 밸런서 설치

1. Pound를 설치하는 가장 쉬운 방법은 사전 컴파일된 RPM 패키지를 사용하는 것입니다. RedHat 기반 배포판용 RPM은 다음에서 찾을 수 있습니다.

  1. http://www.invoca.ch/pub/packages/pound/

또는 아래와 같이 EPEL 저장소에서 Pound를 쉽게 설치할 수 있습니다.


yum install epel-release
yum install Pound

Pound를 설치한 후 이 명령을 실행하여 설치 여부를 확인할 수 있습니다.


rpm –qa |grep Pound

2. 둘째, 로드 균형을 맞추고 파운드 구성이 제대로 작동하는지 테스트하려면 명확한 식별자가 있는지 확인하기 위해 두 개의 웹 서버가 필요합니다.

여기에는 IP 주소 172.16.1.204192.168.1.161을 포함하는 두 대의 서버가 있습니다.

사용 편의성을 위해 Python SimpleHTTPServer를 만들어 두 서버 모두에 인스턴트 웹 서버를 만들었습니다. Python SimpleHTTPServer에 대해 읽어보세요.

내 시나리오에서는 8888 포트를 통해 172.16.1.204에서 webserver01을 실행하고 webserver02에서 실행 중입니다. >192.168.1.161 포트 5555를 통해.

2단계: 파운드 로드 밸런서 구성

3. 이제 구성을 완료할 차례입니다. 파운드를 성공적으로 설치하면 /etc에 파운드 구성 파일, 즉 pound.cfg가 생성됩니다.

웹 서버 간의 로드 균형을 맞추기 위해 서버 및 백엔드 세부 정보를 편집해야 합니다. /etc로 이동하여 pound.cfg 파일을 열어 편집하세요.


vi /etc/pound.cfg

아래 제안된 대로 변경하십시오.


ListenHTTP
    Address 172.16.1.222
    Port 80
End

ListenHTTPS
    Address 172.16.1.222
    Port    443
    Cert    "/etc/pki/tls/certs/pound.pem"
End

Service
    BackEnd
        Address 172.16.1.204
        Port    8888
    End

    BackEnd
        Address 192.168.1.161
        Port    5555
    End
End

이것이 내 pound.cfg 파일의 모습입니다.

"ListenHTTP" 및 "ListenHTTPS" 태그 아래에 POUND를 설치한 서버의 IP 주소를 입력해야 합니다.

기본적으로 서버는 포트 80을 통한 HTTP 요청과 포트 443을 통한 HTTPS 요청을 처리합니다. 'Service' 태그 아래에 'BackEnd'라는 하위 태그를 원하는 만큼 추가할 수 있습니다. BackEnd 태그에는 웹 서버가 실행 중인 IP 주소와 포트 번호가 포함되어 있습니다.

이제 파일을 올바르게 편집한 후 저장하고 아래 명령 중 하나를 실행하여 POUND 서비스를 다시 시작하세요.


/etc/init.d/pound restart 
OR
service pound restart
OR
systemctl restart pound.service

4. 이제 확인할 차례입니다. 두 개의 웹 브라우저를 열어 구성이 제대로 작동하는지 확인하십시오. 주소 표시줄에 POUND 게이트웨이의 IP 주소를 입력하고 나타나는 내용을 확인하세요.

첫 번째 요청은 첫 번째 webserver01을 로드해야 하고 다른 웹 브라우저의 두 번째 요청은 두 번째 webserver02를 로드해야 합니다.

또한 로드 밸런싱을 위해 두 개의 웹 서버가 있고 서버 중 하나의 성능이 좋고 다른 서버의 성능이 그다지 좋지 않은 경우와 같은 시나리오를 생각해 보세요.

따라서 이들 간의 로드 밸런싱을 수행할 때 어떤 서버에 더 많은 비중을 두어야 하는지 고려해야 합니다. 물론 좋은 성능 사양을 갖춘 서버의 경우입니다.

이와 같이 로드 균형을 맞추려면 pound.cfg 파일 내에 단일 매개변수를 추가하기만 하면 됩니다. 그것을 살펴보자.

192.168.1.161:5555 서버가 더 나은 서버라고 생각하세요. 그런 다음 해당 서버에 더 많은 요청 흐름을 넣어야 합니다. 192.168.1.161 서버에 대해 구성된 “BackEnd” 태그에서 종료 태그 앞에 “Priority” 매개변수를 추가합니다.

아래 예를 보세요.

'우선순위' 매개변수에 사용할 수 있는 범위는 1-9입니다. 정의하지 않으면 기본값 5이 할당됩니다.

그러면 부하가 동일하게 균형을 이룰 것입니다. 우선순위 번호를 정의하면 POUND는 우선순위 번호가 높은 서버를 더 자주 로드합니다. 따라서 이 경우 192.168.1.161:5555172.16.1.204:8888 서버보다 더 자주 로드됩니다.

3단계: 비상 고장 계획

긴급 태그: 이 태그는 모든 백엔드 서버가 중단된 경우 서버를 로드하는 데 사용됩니다. 다음과 같이 pound.cfg의 마지막 종료 태그 앞에 추가할 수 있습니다.


“Emergency
           Address 192.168.5.10
           Port        8080
   End”

6. POUND는 항상 어떤 백엔드 서버가 살아 있고 어떤 서버가 살아 있지 않은지 추적합니다. pound.cfg에 "Alive" 매개변수를 추가하여 POUND가 백엔드 서버를 체크아웃해야 하는 시간(초)을 정의할 수 있습니다.

매개변수를 "Alive 30"으로 사용하여 30초로 설정할 수 있습니다. Pound는 응답하지 않는 백엔드 서버를 일시적으로 비활성화합니다. 응답하지 않는 서버가 정지되었거나 그 순간에 연결을 설정할 수 없다고 말하면.

POUND는 서버가 연결을 설정할 수 있는 경우 pound.cfg 파일에 정의한 매 기간 후에 비활성화된 백엔드 서버를 확인하고 POUND는 다시 서버 작업을 시작할 수 있습니다.

7. POUND 데몬은 poundctl 명령으로 처리됩니다. 이를 통해 pound.cfg 파일을 편집할 필요가 없으며 다음을 통해 Listner Server, BackEnd 서버 및 세션 등을 발행할 수 있습니다. 단일 명령.


Syntax: poundctl -c /path/to/socket [-L/-l] [-S/-s] [-B/-b] [-N/-n] [-H] [-X]
  1. -c는 소켓 경로를 정의합니다.
  2. -L/-l은 아키텍처의 리스너를 정의합니다.
  3. -S/-s는 서비스를 정의합니다.
  4. -B/-b는 백엔드 서버를 정의합니다.

자세한 내용은 poundctl 매뉴얼 페이지를 참조하세요.

이 꿀팁을 즐기시고 이와 관련된 더 많은 옵션을 찾아보시기 바랍니다. 제안이나 아이디어가 있으면 아래에 자유롭게 의견을 남겨주세요. 편리한 최신 How To를 위해 Tecmint와 연결을 유지하세요.

추가 읽기: 웹 서버용 XR Crossroads 로드 밸런서 설치