1.health-check을 통한 balancing
# 기본적인 balance 옵션을 추가 할경우 해당 real 서버에대한 신뢰성 검사를 하지 않고 balace 알고리즘으로 무조건 넘겨준다
global
daemon
maxconn 1000
nbproc 2
defaults
mode http
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
frontend http-in
bind *:80
default_backend servers
backend servers
balance roundrobin
server server1 192.168.229.135:80 check
server server2 192.168.229.136:80 check
# 위와 같이 특정 backend server 장애시 아래와 같이 연결 시도 하는 것을 확인 할 수 있다.
[root@NODE0 haproxy]# curl 192.168.229.138
node1
[root@NODE0 haproxy]# curl 192.168.229.138
<html><body><h1>503 Service Unavailable</h1>
No server is available to handle this request.
</body></html>
# check 파라미터를 추가 할 경우 한번 체크를 한뒤 해당 서버에 응답이 없을 경우 해당 서버로 연결 되지 않는다.
balance roundrobin
server server1 192.168.229.135:80 check
server server2 192.168.229.136:80 check
# 아래 테스트처럼 node2(136) 으로 연결을 하지 않는다.
[root@NODE0 haproxy]# curl 192.168.229.138
node1
[root@NODE0 haproxy]# curl 192.168.229.138
node1
[root@NODE0 haproxy]# curl 192.168.229.138
node1
[root@NODE0 haproxy]# curl 192.168.229.138
node1
# 정상적인 패킷 과정을보면 229.138 프록시 서버가 원서버 229.135 로 3way handshake 로 정상적으로 연결 되는 것을 확인 할 수 있다.
# 하지만 응답이 없는 229.136으로 syn 을 보내서 syn 에대한 syn+ack 이 정상적으로 오지 않는경우 바로 다음 서버로 연결 시도 하게 된다.
2.backup 을 통한 balancing
# backup 구성은 L4 slb backup 과 유사 하다. backup 으로 구성 될 경우 backup 이 아닌 server 로
연결 된뒤 해당서버가 down시 backup으로 설정된 서버로 연결 된다.
# 아래와 같이 backup 파라미터를 136 으로 추가 하였다
backend servers
balance roundrobin
server server1 192.168.229.135:80 check
server server2 192.168.229.136:80 check backup
# 두 서버가 정상적으로 연결된경우 아래와 같이 135 node 1으로만 연결이 된다.
[root@NODE0 haproxy]# curl 192.168.229.138
node1
[root@NODE0 haproxy]# curl 192.168.229.138
node1
[root@NODE0 haproxy]# curl 192.168.229.138
node1
[root@NODE0 haproxy]# curl 192.168.229.138
node1
[root@NODE0 haproxy]# curl 192.168.229.138
# node1 에서 httpd(80) 데몬을 중지후 테스트 하면 1번 node 1으로 연결 시도후 실패 하여 backup 으로 구성된node 2로 연결 되는 것을 확인 할 수 있다.
[root@NODE1 ~]# /etc/init.d/httpd stop
Stopping httpd: [ OK ]
[root@NODE0 haproxy]# curl 192.168.229.138
<html><body><h1>503 Service Unavailable</h1>
No server is available to handle this request.
</body></html>
[root@NODE0 haproxy]# curl 192.168.229.138
node2
[root@NODE0 haproxy]# curl 192.168.229.138
node2
3.disabled 로 일시 정지
- 사이트 관리자가 해당 config 를 유지 하고 잠시 proxy연결을 중지 하기 위해 disabled 옵션을 추가 하여 중지 할 수 있다.
해당 피어로 해당 설정시 주석 설정과 동일한 현상을 볼 수 있다.(추가 적으로 enabled 옵션은 해당 peer를 사용 한다는 파라미터 )
backend servers
balance roundrobin
server server1 192.168.229.135:80 check
server server2 192.168.229.136:80 check disabled
반응형
'System > Haproxy' 카테고리의 다른 글
haproxy acl 을 이용한 특정 호스트 route (0) | 2016.03.11 |
---|---|
nbproc 파라미터를 통한 haproxy데몬 추가 (0) | 2016.03.11 |
haproxy balance 설정 (0) | 2016.03.11 |
Haproxy 기본 설치 및 설정 방법 (0) | 2016.03.11 |
keepalived,haproxy 를 이용한 vrrp구성 (0) | 2016.03.06 |