RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR
분류없음  2016/01/11 18:17
1. HAProxy에 대하여
기존 하드웨어 방식의 로드 밸런서를 어느정도 대체 가능한 오픈소스 솔루션으로 알려져 있습니다.
네트워크 스위치에서 제공하는 L4, L7의 기능 및 로드 밸런싱 기능을 일부 제공하고 있습니다.
 
 
2. 구성 정보
OS : CentOS 6.6 64bit
Apache 2.2.15
MySQL 5.6.25
HAProxy 192.168.2.4
WEB1 192.168.2.201
WEB2 192.168.2.202
 
 
3. 설치
 

#yum -y update

 

 

 

#yum -y openssl-devel gcc gcc-c++ // 설치 전 필요한 라이브러리

 

 

 

#wget http://www.haproxy.org/download/1.5/src/haproxy-1.5.14.tar.gz

 

 

 

#tar zxvf haproxy-1.5.14.tar.gz

 

 

 

#cd haproxy-1.5.14

 

 

 

#make TARGET=linux26 USE_OPENSSL=1 ADDLIB=-lz

 

 

 

#make install

 

 

 

#cp ./examples/haproxy.init /etc/rc.d/init.d/haproxy // 실행 스크립트 복사

 

 

 

#chmod 755 /etc/rc.d/init.d/haproxy

 

 

 

#mkdir -p /etc/haproxy

 

 

 

#cp ./examples/haproxy.cfg /etc/haproxy/  // 샘플 설정 파일 복사

 

 

 

#mkdir -p /etc/haproxy/errors

 

 

 

#cp ./examples/errorfiles/* /etc/haproxy/errors/

 

 

 

#cd /usr/sbin

 

 

 

#ln -s /usr/local/sbin/haproxy haproxy

 

 

 

#useradd haproxy  // 계정 생성

 

 

 
 
4. 설정
 
 - 설정파일 구성
  크게 global, defaults, listen, frontend, backend의 영역으로 구분되며
  global은 전체 영역에 걸쳐 적용되는 기본 설정을 담당합니다.
  defaults는 이후 오는 영역(frontend, backend, listen)에 적용되는 설정이고
  frontend는 클라이언트 연결을 받아들이는 소켓에 대한 설정,
  backend는 앞에서 들어온 연결에 할당될 프록시 서버들에 대한 설정
  listen : frontend와 backend로 사용되는 포트를 한번에 설정하는 영역. TCP 프록시에 주로 이용 됩니다.
 
 
 
 - 간단한 웹서버 2대 로드밸런싱 하는 예제
 
#vi /etc/haproxy/haproxy.cfg
 

global

 

 

        log 127.0.0.1   local0

 

 

        log 127.0.0.1   local1 notice

 

 

        maxconn 4096

 

 

        chroot /usr/share/haproxy

 

 

        user haproxy

 

 

        group haproxy

 

 

        daemon

 

 

 

defaults

 

 

        log     global

 

 

        option  dontlognull

 

 

        retries 3

 

 

        redispatch

 

 

        maxconn 2048

 

 

        contimeout      5000

 

 

        clitimeout      50000

 

 

        srvtimeout      50000

 

 

        stats   enable

 

 

        stats uri /haproxy_stats

 

 

        stats refresh 10s

 

 

 

 

listen  test-web  192.168.2.4:80

 

 

        mode http

 

 

        option log-health-checks

 

 

        cookie  SERVERID rewrite

 

 

        cookie  JSESSIONID prefix

 

 

        balance roundrobin

 

 

        server  web1 192.168.2.201:80 cookie testweb1 check inter 2000 rise 2 fall 5

 

 

        server  web2 192.168.2.202:80 cookie testweb2 check inter 2000 rise 2 fall 5

 
 - 옵션 설명
 
global 전역 옵션 섹션
daemon : 백그라운드 모드(background mode)로 실행
log : syslog 설정
log-send-hostname : hostname 설정
uid : 프로세스의 userid를 number로 변경
user : 프로세스의 userid를 name으로 변경
node : 두 개 이상의 프로세스나 서버가 같은 IP 주소를 공유할 때 name 설정(HA 설정)
maxconn : 프로세스당 최대 연결 개수
 
Defaults 기본 옵션 섹션
log : syslog 설정
maxconn : 프로세스당 최대 연결 개수
listen webfarm 10.101.22.76:80 : haproxy name ip:port
mode http : 연결 프로토콜
option httpchk : health check
option log-health-checks : health 로그 남김 여부
option forwardfor : 클라이언트 정보 전달
option httpclose : keep-alive 문제 발생 시 off 옵션
cookie SERVERID rewrite : 쿠키로 서버 구별 시 사용 여부
cookie JSESSIONID prefix : HA 구성 시 prefix 이후에 서버 정보 주입 여부
balance roundrobin : 순환 분배 방식
stats enable : 서버 상태 보기 가능 여부
stats uri /admin : 서버 상태 보기 uri
server aaa.aaa 192.168.2.201:80 cookie testweb1 check inter 2000 rise 2 fall 5
real server 정보(server [host명] [ip]:[port] cookie [서버쿠키명] check inter [주기(m/s)] rise [서버구동여부점검횟수], fall [서비스중단여부점검횟수])
 
 
 
 - 로그 설정
haproxy의 경우 로그를 UDP를 통해 남기기 때문에
rsyslog에서 UDP 관련 로그 수집이 가능토록 설정이 필요함
 
#vi /etc/rsyslog.d/haproxy.conf
 

$ModLoad imudp

 

 

 

$UDPServerAddress 127.0.0.1

 

$UDPServerRun 514

 

$template Haproxy,"%msg%\n"

local0.=info -/var/log/haproxy.log;Haproxy

local0.notice -/var/log/haproxy-status.log;Haproxy

local0.info -/var/log/haproxy-info.log;Haproxy

### keep logs in localhost ##

local0.* ~

 

 

 
 
 
5. 프로세스 시작 및 테스트
 
#/etc/init.d/haproxy start
 
 
- 상기 예제 처럼 stats enable 옵션을 부여하여 웹콘솔상에서 현황 확인이 가능 합니다.
 
 
 
 
 
 
6. 테스트 진행
 
apache ab를 통한 간단한 부하 테스트 진행을 해 보았습니다.
 
ServerLimit 256
MaxClients 256
 
#ab  -n 2000 -c 1000 http://192.168.2.4/
 
 
 
 
 
 
ServerLimit 2048
MaxClients 2048
 
#ab  -n 5000 -c 1000 http://192.168.2.4/
 
 
 
 
 
* 비록 간단한 index page 호출로 테스트를 진행 하였지만 로드밸런서의 성능 문제로 지연값이 발생하진 않음을 확인하였지만
  절대적인 기준의 잣대는 아니니 참고만 하시기 바랍니다.
 
 
 
 
 
2016/01/11 18:17 2016/01/11 18:17
http://zosel.net/trackback/232
from.グランドセイコー スプリングドライブ クロノグラフ オーバーホール  2016/01/13 03:36
http://artandsoulbnb.com/8lTIEOGHBB2時計 部品屋
from.cheap foamposites  2016/01/13 14:58
Larry works harderONPlace the price of a $125look on as many as $157.3 and potential consumers will turn absent. While you are it right which the very good gladness on the bestthe above series of the fie
from.シャネル カンボン 長財布 定価  2016/01/13 16:53
http://artandsoulbnb.com/8lUNJEAMRU2時計 部品製造
from.シャネル ピアス ドンキ  2016/01/13 20:06
http://artandsoulbnb.com/8lPOHXaIVT1時計 部品名
from.財布 風水 財布  2016/01/13 23:01
http://artandsoulbnb.com/8lPOHXaIVT1時計 部品名
from.シャネル 修理 大阪  2016/01/14 04:22
http://artandsoulbnb.com/8lUNJEAMRU2時計 部品製造
from.腕時計 レディース シチズン エクシード  2016/01/14 05:04
http://artandsoulbnb.com/8lTIEOGHBB2時計 部品屋
from.時計 刻印  2016/01/14 10:13
http://artandsoulbnb.com/8lPOHXaIVT1時計 部品名
from.Mcm Totes  2016/01/17 21:20
cheap kid nike shoes
from.London Comic Con Mcm  2016/01/17 21:38
air max nike women shoes
from.Stivali Ugg Bassi  2016/01/17 22:13
mcm bags outlet
ZOSEL:Too much is as bad as too little...!! 자공(子貢)이 공자에게 "사(師:子張의 이름)와 상(商:子夏의 이름)은 어느 쪽이 어집니까?" 하고 묻자, 공자는 "사는 지나치고 상은 미치지 못한다"고 대답하였다. "그럼 사가 낫단 말씀입니까?" 하고 반문하자, 공자는 "지나친 것은 미치지 못한 것과 같다(過猶不及)"고 말하였다.
Too much is as bad as too little...!! 자공(子貢)이 공자에게 "사(師:子張의 이름)와 상(商:子夏의 이름)은 어느 쪽이 어집니까?" 하고 묻자, 공자는 "사는 지나치고 상은 미치지 못한다"고 대답하였다. "그럼 사가 낫단 말씀입니까?" 하고 반문하자, 공자는 "지나친 것은 미치지 못한 것과 같다(過猶不及)"고 말하였다.
전체 (209)
리눅스시스템 (92)
윈도우시스템 (16)
프로그램 (7)
네트워크시스템 (7)
최근관심 (1)
«   2024/05   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
  1. yeezyboost-350.co.uk  2021
    yeezyboost-350.co.uk
  2. 강남역 풀싸롱  2021
    강남역 풀싸롱
  3.   2021
  1. 2018/02 (1)
  2. 2017/03 (2)
  3. 2016/12 (2)