System/Linux

CentOS - HAProxy 설치

신씅 2016. 9. 2. 22:36
로드 밸런싱(Load balancing) 은 여러대의 장비에 분산되어 있는 WAS(Web Appication Server) 를 하나의 포인트로 접근할 수 있게끔 해주는 솔루션입니다.
자원 활용의 최적화, 처리량 개선, 응답시간 최소화, 특정 리소스의 오버헤드를 방지하는 목적으로 사용됩니다.

HAProxy

HAProxy 는 오픈소스 로드 밸런싱 소프트웨어 중 가장 많이 알려진 솔루션 중 하나이며, 고가용성, 프록시 기능을 제공합니다.
HAProxy 는 트래픽이 많은 웹사이트에 특히 필요하며, 여러 서버로 구성 된 웹 서비스의 신뢰성과 성능을 증가시켜줍니다.

설치 (HAProxy 1.6)

1. yum(패키지 관리자) 을 이용한 설치

$ sudo yum install haproxy

2. 소스코드 컴파일을 이용한 설치

의존 패키지를 설치합니다.

$ sudo yum install wget gcc pcre-static pcre-devel -y

HAProxy 소스 코드를 다운로드 받고, 압축을 해제합니다.

$ wget http://www.haproxy.org/download/1.6/src/haproxy-1.6.8.tar.gz

압축 해제한 HAProxy 파일을 컴파일 합니다.

$ cd ~/haproxy-1.6.8
$ make TARGET=linux2628

# 여기서 TARGET 옵션은 리눅스 종류에 맞춰 지정합니다.
- linux22     for Linux 2.2
- linux24     for Linux 2.4 and above (default)  
- linux24e    for Linux 2.4 with support for a working epoll (> 0.21)  
- linux26     for Linux 2.6 and above  
- linux2628   for Linux 2.6.28, 3.x, and above (enables splice and tproxy)  
- solaris     for Solaris 8 or 10 (others untested)  
- freebsd     for FreeBSD 5 to 10 (others untested)  
- netbsd      for NetBSD   - osx         for Mac OS/X  
- openbsd     for OpenBSD 3.1 and above  
- aix51       for AIX 5.1  
- aix52       for AIX 5.2  
- cygwin      for Cygwin  
- generic     for any other OS or version.  
- custom      to manually adjust every setting

최종적으로 설치 명령을 수행합니다.

$ sudo make install

haproxy 명령어를 사용할 수 있도록 설치된 파일들을 /usr/sbin 디렉토리에 링크를 걸고, service 에 등록합니다.

$ sudo ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
$ sudo cp ~/haproxy-1.6.8/examples/haproxy.init /etc/init.d/haproxy
$ sudo chmod 755 /etc/init.d/haproxy

haproxy 를 정상적으로 실행하기 위해서는 haproxy 계정을 시스템 계정으로 등록되어 있어야 합니다.

$ sudo useradd -r haproxy

설치가 완료되면 hproxy 를 실행하여 정상적으로 설치되었는지 확인합니다.

$ sudo haproxy -v
HA-Proxy version 1.6.8 2016/08/14
Copyright 2000-2015 Willy Tarreau <willy@haproxy.org>

로드 밸런서 설정

로드 밸런싱을 위해 설정은 매우 간단합니다. 기본적으로 HAProxy 가 어떤 종류의 커넥션을 리스닝 하고 있어야 하는지 그리고 어떤 서버로 중계할 것인지를 설정해야 합니다.
설정 파일은 /etc/haproxy/haproxy.cfg 에 정의합니다.

$ sudo vi /etc/haproxy/haproxy.cfg

global
  maxconn 256
defaults
  mode http
  timeout connect 5000ms
  timeout client 60000ms
  timeout server 60000ms
frontend http-in
  bind  *:8888
  default_backend servers
backend servers
  balance source
  server <server-name> <hostname>:<port> check
  server <server-name> <hostname>:<port> check

설정을 완료한 후, haproxy 를 재시작 합니다.

$ service haproxy restart


How to Install HAProxy Load Balancer on CentOS - https://www.upcloud.com/support/haproxy-load-balancer-centos/