웹사이트 검색

웹 서버 트래픽을 제어하기 위해 'HAProxy'를 사용하여 고가용성 로드 밸런서를 설정하는 방법


HAProxy는 고가용성 프록시를 나타냅니다. C 프로그래밍 언어로 작성된 무료 오픈 소스 애플리케이션입니다. HAProxy 애플리케이션은 TCP/HTTP 로드 밸런서 및 프록시 솔루션으로 사용됩니다. HAProxy 애플리케이션의 가장 일반적인 용도는 웹 서버, 데이터베이스 서버 등 여러 서버에 워크로드를 분산하여 서버 환경의 전반적인 성능과 안정성을 향상시키는 것입니다.

매우 효율적이고 빠른 애플리케이션은 Twitter, Reddit, GitHub 및 Amazon을 포함하되 이에 국한되지 않는 세계적으로 유명한 많은 조직에서 사용됩니다. Linux, BSD, Solaris 및 AIX 플랫폼에서 사용할 수 있습니다.

이 튜토리얼에서는 여러 서버에 걸쳐 요청을 분리하여 HTTP 기반 애플리케이션(웹 서버)의 트래픽을 제어하기 위해 HAProxy를 사용하여 고가용성 로드 밸런서를 설정하는 프로세스에 대해 설명합니다.

이 기사에서는 HAProxy의 최신 안정 버전(예: 2014년 12월 31일에 출시된 1.5.10)을 사용하고 있습니다. 또한 이를 위해 CentOS 6.5를 사용합니다. 하지만 아래 지침은 CentOS/RHEL/Fedora 및 Ubuntu/Debian 배포판에서도 작동합니다.

내 환경 설정

여기서는 호스트 이름이 websrv.tecmintlocal.com이고 IP 주소가 192.168.0.125인 로드 밸런서 HAProxy 서버입니다.

HAProxy 서버 설정
Operating System	:	CentOS 6.5
IP Address		: 	192.168.0.125
Hostname		: 	websrv.tecmintlocal.com
클라이언트 웹 서버 설정

나머지 4개의 시스템은 Apache와 같은 웹 서버를 사용하여 실행 중입니다.

Web Server #1 :	CentOS 6.5 [IP: 192.168.0.121] - [hostname: web1srv.tecmintlocal.com]
Web Server #2 :	CentOS 6.5 [IP: 192.168.0.122] - [hostname: web2srv.tecmintlocal.com]
Web Server #3 :	CentOS 6.5 [IP: 192.168.0.123] - [hostname: web3srv.tecmintlocal.com]
Web Server #4 :	CentOS 6.5 [IP: 192.168.0.124] - [hostname: web4srv.tecmintlocal.com]

1단계: 클라이언트 시스템에 Apache 설치

1. 먼저 4개의 서버 모두에 Apache를 설치하고 사이트 중 하나를 공유해야 합니다. 4개의 서버 모두에 Apache를 설치하려면 여기에서 다음 명령을 사용하겠습니다.

yum install httpd		[On RedHat based Systems]
apt-get install apache2	[On Debian based Systems]

2. 4개의 클라이언트 시스템 모두에 Apache 웹 서버를 설치한 후 브라우저의 IP 주소를 통해 액세스하여 서버 중 누구라도 Apache가 실행 중인지 확인할 수 있습니다.

http://192.168.0.121

2단계: HAProxy 서버 설치

3. 오늘날 대부분의 최신 Linux 배포판에서 HAPRoxy는 기본 패키지 관리자 yum 또는 apt-get을 사용하여 기본 기본 저장소에서 쉽게 설치할 수 있습니다. >.

예를 들어 RHEL/CentOS/Fedora 및 Debian/Ubuntu 버전에 HAProxy를 설치하려면 다음 명령을 실행합니다. SSL 및 NON-SSL 지원으로 HAProxy를 설정할 것이기 때문에 여기에는 openssl 패키지도 포함했습니다.

yum install haproxy openssl-devel	[On RedHat based Systems]
apt-get install haproxy		[On Debian based Systems]

참고: Debian Whezzy 7.0에서는 backports.list 새 파일을 추가하여 백포트 저장소를 활성화해야 합니다. '/etc/apt/sources.list.d/' 디렉토리 아래에 다음 내용이 포함되어 있습니다.

echo "deb http://cdn.debian.net/debian wheezy-backports main" >> /etc/apt/sources.list.d/backports.list

다음으로 리포지토리 데이터베이스를 업데이트하고 HAProxy를 설치합니다.

apt-get update
apt-get install haproxy -t wheezy-backports

3단계: HAProxy 로그 구성

4. 다음으로 향후 디버깅을 위해 HAProxy에서 로깅 기능을 활성화해야 합니다. 선택한 편집기를 사용하여 기본 HAProxy 구성 파일 '/etc/haproxy/haproxy.cfg'을 엽니다.

vim /etc/haproxy/haproxy.cfg

그런 다음 배포판 관련 지침에 따라 HAProxy에서 로깅 기능을 구성합니다.

RHEL/CentOS/Fedora에서

#Global settings에서 다음 줄을 활성화합니다.

log         127.0.0.1 local2
우분투/데비안에서

#Global settings에서 다음 줄을 바꾸세요.

log /dev/log        local0
log /dev/log        local1 notice 

와 함께,

log         127.0.0.1 local2

5. 다음으로 '/etc/rsyslog.conf' 구성 파일에서 UDP syslog 수신을 활성화하여 /var/log 아래의 HAProxy에 대한 로그 파일을 분리해야 합니다. 디렉토리. 원하는 편집기를 사용하여 'rsyslog.conf' 파일을 엽니다.

vim /etc/rsyslog.conf

Uncommnet ModLoadUDPServerRun, 여기서 서버는 포트 514를 수신하여 syslog에 로그를 수집합니다.

Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

6. 다음으로 '/etc/rsyslog.d/' 디렉토리 아래에 별도의 'haproxy.conf' 파일을 생성하여 구성해야 합니다. 별도의 로그 파일.

vim /etc/rsyslog.d/haproxy.conf

새로 생성된 파일에 다음 줄을 추가합니다.

local2.*	/var/log/haproxy.log

마지막으로 rsyslog 서비스를 다시 시작하여 새로운 변경 사항을 업데이트합니다.

service rsyslog restart