웹사이트 검색

RHEL/CentOS에서 웹 서버용 'XR'(Crossroads) 로드 밸런서 설정


Crossroads는 Linux 및 TCP 기반 서비스를 위한 서비스 독립적인 오픈 소스 로드 밸런싱 및 장애 조치 유틸리티입니다. HTTP, HTTPS, SSH, SMTP 및 DNS 등에 사용할 수 있습니다. 또한 로드 밸런싱 시 성능을 향상시키는 하나의 메모리 공간만 소비하는 멀티 스레드 유틸리티이기도 합니다.

XR이 어떻게 작동하는지 살펴보겠습니다. 우리는 네트워크 클라이언트와 부하 분산 서버에 클라이언트 요청을 전달하는 서버 중첩 사이에서 XR을 찾을 수 있습니다.

서버가 다운되면 XR은 다음 클라이언트 요청을 다음 서버로 전달하므로 클라이언트는 다운타임을 느끼지 않습니다. XR로 어떤 상황을 처리할지 이해하려면 아래 다이어그램을 살펴보세요.

클라이언트 요청을 수신하고 서버 간에 배포하기 위해 XR을 설치하고 설정하는 하나의 게이트웨이 서버인 두 개의 웹 서버가 있습니다.

XR Crossroads Gateway Server : 172.16.1.204
Web Server 01 : 172.16.1.222
Web Server 02 : 192.168.1.161

위 시나리오에서 내 게이트웨이 서버(예: XR Crossroads)는 IP 주소 172.16.1.222를 갖고 있고 webserver01172.16.1.222이며 이를 통해 수신합니다. 포트 8888webserver02192.168.1.161이며 포트 5555를 통해 수신 대기합니다.

이제 나에게 필요한 것은 XR 게이트웨이가 인터넷에서 수신하는 모든 요청의 로드 균형을 맞추고 로드 균형을 조정하는 두 개의 웹 서버에 배포하는 것입니다.

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

1. 안타깝게도 소스 tarball에서 XR 크로스로드를 설치하는 유일한 방법인 크로스크로드에 사용할 수 있는 바이너리 RPM 패키지가 없습니다.

XR을 컴파일하려면 오류 없이 설치를 계속하려면 C++ 컴파일러와 Gnu make 유틸리티가 시스템에 설치되어 있어야 합니다.

yum install gcc gcc-c++ make

다음으로 공식 사이트(https://crossroads.e-tunity.com)로 이동하여 소스 타르볼을 다운로드하고 보관된 패키지(예: crossroads-stable.tar.gz)를 가져옵니다.

또는 다음 wget 유틸리티를 사용하여 패키지를 다운로드하고 임의의 위치(예: /usr/src/)에 압축을 풀고 압축을 푼 디렉터리로 이동하여 “< Strong>make install ” 명령입니다.

wget https://crossroads.e-tunity.com/downloads/crossroads-stable.tar.gz
tar -xvf crossroads-stable.tar.gz
cd crossroads-2.74/
make install

설치가 완료되면 바이너리 파일이 /usr/sbin/ 아래에 생성되고 /etc 내의 XR 구성, 즉 "xrctl.xml"이 생성됩니다.

2. 마지막 전제 조건으로 두 개의 웹 서버가 필요합니다. 사용 편의성을 위해 한 서버에 두 개의 Python SimpleHTTPServer 인스턴스를 만들었습니다.

Python SimpleHTTPServer를 설정하는 방법을 보려면 SimpleHTTPServer를 사용하여 쉽게 두 개의 웹 서버 만들기 문서를 읽어보세요.

앞서 말했듯이 우리는 두 개의 웹 서버를 사용하고 있으며 webserver01은 포트 8888을 통해 172.16.1.222에서 실행되고 있습니다. webserver02는 포트 5555를 통해 192.168.1.161에서 실행됩니다.

2단계: XR Crossroads 로드 밸런서 구성

3. 모든 필수 조건이 갖추어져 있습니다. 이제 우리가 해야 할 일은 인터넷에서 XR 서버가 수신하는 웹 서버 간에 로드를 분산하도록 xrctl.xml 파일을 구성하는 것입니다.

이제 vi/vim 편집기로 xrctl.xml 파일을 엽니다.

vim /etc/xrctl.xml

아래 제안된 대로 변경합니다.

<?xml version=<94>1.0<94> encoding=<94>UTF-8<94>?>
<configuration>
<system>
<uselogger>true</uselogger>
<logdir>/tmp</logdir>
</system>
<service>
<name>Tecmint</name>
<server>
<address>172.16.1.204:8080</address>
<type>tcp</type>
<webinterface>0:8010</webinterface>
<verbose>yes</verbose>
<clientreadtimeout>0</clientreadtimeout>
<clientwritetimout>0</clientwritetimeout>
<backendreadtimeout>0</backendreadtimeout>
<backendwritetimeout>0</backendwritetimeout>
</server>
<backend>
<address>172.16.1.222:8888</address>
</backend>
<backend>
<address>192.168.1.161:5555</address>
</backend>
</service>
</configuration>

여기서는 xrctl.xml 내에서 수행된 매우 기본적인 XR 구성을 볼 수 있습니다. XR 서버가 무엇인지, 백엔드 서버가 무엇인지, 해당 포트와 XR용 웹 인터페이스 포트가 무엇인지 정의했습니다.

4. 이제 아래 명령을 실행하여 XR 데몬을 시작해야 합니다.

xrctl start
xrctl status

5. 좋습니다. 좋습니다. 이제 구성이 제대로 작동하는지 확인할 차례입니다. 두 개의 웹 브라우저를 열고 포트가 있는 XR 서버의 IP 주소를 입력하고 출력을 확인하세요.

환상적입니다. 잘 작동합니다. 이제 XR을 사용해 볼 차례입니다.

6. 이제 XR Crossroads 대시보드에 로그인하여 웹 인터페이스용으로 구성한 포트를 확인할 차례입니다. xrctl.xml에서 구성한 웹 인터페이스용 포트 번호와 함께 XR 서버의 IP 주소를 입력하세요.

http://172.16.1.204:8010

이것이 어떻게 생겼는지입니다. 이해하기 쉽고 사용자 친화적이며 사용하기 쉽습니다. 수신된 요청에 관한 추가 세부 정보와 함께 오른쪽 상단에 각 백엔드 서버가 수신한 연결 수를 표시합니다. 각 서버가 감당해야 하는 로드 가중치, 최대 연결 수 및 평균 로드 등을 설정할 수도 있습니다.

가장 좋은 점은 xrctl.xml을 구성하지 않고도 실제로 이 작업을 수행할 수 있다는 것입니다. 당신이 해야 할 일은 다음 구문으로 명령을 실행하는 것뿐입니다. 그러면 작업이 완료됩니다.

xr --verbose --server tcp:172.16.1.204:8080 --backend 172.16.1.222:8888 --backend 192.168.1.161:5555

위 구문에 대한 자세한 설명은 다음과 같습니다.

  1. –verbose는 명령이 실행될 때 어떤 일이 발생하는지 보여줍니다.
  2. –서버는 패키지를 설치한 XR 서버를 정의합니다.
  3. –백엔드는 트래픽 균형을 맞추는 데 필요한 웹 서버를 정의합니다.
  4. Tcp는 TCP 서비스를 사용한다고 정의합니다.

CROSSROADS의 문서화 및 구성에 대한 자세한 내용을 보려면 공식 사이트(https://crossroads.e-tunity.com/)를 방문하십시오.

XR Corssroads는 서버 성능을 향상하고 가동 중지 시간을 보호하며 관리 작업을 더 쉽고 편리하게 만드는 다양한 방법을 제공합니다. 이 가이드가 즐거웠기를 바라며 제안과 설명이 필요하면 아래에 자유롭게 의견을 남겨주세요. 편리한 방법을 알아보려면 Tecmint와 연락하세요.

추가 읽기: 웹 서버 로드를 제어하기 위해 Pound Load Balancer 설치