IMLENA

[서버구축] 로드밸런싱 - Hproxy, Keepalived 본문

기타

[서버구축] 로드밸런싱 - Hproxy, Keepalived

IM레나2 2021. 4. 17. 10:48

서버를 운영할 떄 과부화등의 이유로 서버가 다운되고 가용성이 침해되는 것을 막기 위해

Load Balancing을 한다.

 

쉽게 말해 2개의 서버 를 두고 2개의 서버가 번갈아 가며 또는 동시에 main 서버로 움직이게 하여 부하분산을 시키는 것이다.

 

 

구성도

실제 서버는 이것 보다 훨씬 복잡 하지만,

실습이니 간단히 웹서버에 대해서만 부하분산을 걸고 자 한다.

 

 

172.30.1.0/24는 외부

172.30.10.0/24는 내부

 

CentOS6.7 이용

 

1. Keepalived, Haproxy 설치

 

[root@localhost ~]# yum -y install haproxy keepalived
[root@localhost ~]# rpm -qa haproxy
haproxy-1.5.18-1.el6.x86_64
[root@localhost ~]# rpm -qa keepalived
keepalived-1.2.13-5.el6_6.x86_64

 

2. Haproxy 설정

 

vi /etc/haproxy/haproxy.cfg

 

frontend main *:80 
#    use_backend static          if url_static
backend app
    balance     roundrobin
     server httpd1 172.30.10.1:80 check
     server httpd2 172.30.10.2:80 check

 

파일 내용에서 backend app과 frontend 부분만 수정 해준다.

 

 

* 실행시 오류

Starting frontend main: cannot bind socket [0.0.0.0:80]
 Haproxy 이용 하려는 서버에 80번 포트가 이미 사용 중인 경우
 Netstat -nltp
 Service httpd stop

 

 

[root@localhost ~]# service haproxy start
haproxy (을)를 시작 중:                                    [  OK  ]

 

 

3. Keepalived 설정

 

[root@localhost ~]# vi /etc/keepalived/keepalived.conf

vrrp_instance VI_1

{

    state MASTER

    interface eth1

    virtual_router_id 51

    priority 100  #LB1= 101

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        172.30.10.254

        172.30.1.100

    }

}

 

*LB1 과 LB2의 priority는 달라야 한다.

 

[root@localhost ~]# service keepalived start

keepalived () 시작 :                                 [  OK  ]

 

 

4. 테스트

 

172.30.1.48 host 컴퓨터에서 172.30.1.100 vip 웹사이트 접근

server 172.30.10.203에서 응답

Webserver 1 2 동시에 번갈아 가며 통신 하는 것을 확인 하였다.

Comments