Nginx + Keepalived 더 블 클릭 열 준비 및 부하 균형 실현

6503 단어 keepalived
Nginx master : 10.1.58.191   Nginx 부하 균형 호스트 Nginx  slave    : 10.1.58.181   Nginx 부하 균형 준비 기 NginxVIP_TP: 10.1.58.190 시스템 VIP 주소 (가상 IP) Nginx 버 전: nginx - 1.2.6. tar. gzKeepalived 버 전: keepalived - 1.2.7. tar. gz 1: Nginx 설치    여 기 는 생략...2: Keepalived 설치 tar - zxvf  keepalived - 1.2.7. tar. gzcd keepalived - 1.2.7. / configure -- prefix = / usr / local / keepalivedmake & make install 3: Keepalived 부팅 및 서비스 추가 cp / usr / local / keepalived / etc / rc. d / keepalived / etc / init. d / chmod + x / etc / init. d / keepalivedcp / usr / local / keepalived / etc / sysconfig / mkdir /etc/keepalivedcp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin/
chkconfig --add keepalived
chkconfig keepalived on
 
4: Nginx master 설정 
 
keepalived.conf
! Configuration File for keepalived
global_defs {
   notification_email {
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server Cashub1-szzb.vanke.net.cn
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
\ # 모니터링 서비스. NGINX mysql 등
vrrp_script chk_nginx {
    script "/home/check_nginx.sh"
    interval 2
    weight 2
}
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    mcast_src_ip 10.1.58.191
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
     10.1.58.190
    }
     track_script {
        chk_nginx  #스 크 립 트 검사
    }
}
}
5: Nginx slave
배치 하 다. 
 
keepalived.conf
! Configuration File for keepalived
global_defs {
   notification_email {
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server Cashub1-szzb.vanke.net.cn
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
\ # 모니터링 서비스. NGINX mysql 등
vrrp_script chk_nginx {
    script "/home/check_nginx.sh"
    interval 2
    weight 2
}
vrrp_instance VI_1 {
    state SLAVE
    interface eth0
    virtual_router_id 51
    mcast_src_ip 10.1.58.181
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
     10.1.58.190
    }
     track_script {
        chk_nginx  #스 크 립 트 검사
    }
}
6: 
check_nginx.sh
#!/bin/sh
if [ "$(ps -ef | grep "nginx: master process"| grep -v grep )" == "" ]
then
 /usr/local/nginx/sbin/nginx
 sleep 5
 if [ "$(ps -ef | grep "nginx: master process"| grep -v grep )" == "" ]
 then
 killall keepalived
 fi
fi
}
7: 설정 매개 변수 설명
! Configuration File for keepalived



global_defs {

   notification_email {

     [email protected]             #        ,      ,    。       sendmail  

   }

   notification_email_from  [email protected]        #         

   smtp_server 127.0.0.1                                #  smtp server  

   smtp_connect_timeout 30                              #    smtp server     

   router_id LVS_DEVEL                                  #    keepalived        。              

}



vrrp_instance VI_1 {

    state MASTER              #  keepalived   ,MASTER          ,BACKUP           

    interface eth0            #  HA       

    virtual_router_id 51      #      ,         ,   vrrp         。   vrrp_instance ,MASTER BACKUP      

    priority 100              #     ,    ,     ,    vrrp_instance ,MASTER        BACKUP    

    advert_int 1              #  MASTER BACKUP                ,    

    authentication {          #         

        auth_type PASS        #      ,   PASS AH  

        auth_pass 1111        #      ,    vrrp_instance ,MASTER BACKUP               

    }

    virtual_ipaddress {       #    IP  ,        IP  ,    

        10.0.0.148

    }

}



virtual_server 10.0.0.148 80 {      #       ,      IP       ,IP          

    delay_loop 6                    #          ,    

    lb_algo rr                      #        ,     rr,     

    lb_kind DR                      #  LVS         , NAT、TUN、DR      

    persistence_timeout 50          #      ,    。               ,       session              。

                                    #          ,                  ,             。

                                    #      ,                  ,    ,          ,  50          ,

                                    #                  ,               ,   50      

    protocol TCP                    #        , TCP UDP  



    real_server 10.0.0.137 80 {     #      1,    real server   IP     ,IP          

        weight 3                    #         ,         ,    ,    ,                 

                                    #       ,                 ,                   ,                

        TCP_CHECK {                 #realserver         ,    

            connect_timeout 10      #  3      

            nb_get_retry 3          #      

            delay_before_retry 3    #      

            connect_port 80

        }

    }

    real_server 10.0.0.139 80 {

        weight 3

        TCP_CHECK {

            connect_timeout 10

            nb_get_retry 3

            delay_before_retry 3

            connect_port 80

        }

    }

}

테스트
1. Nginx master, Nginx slave 위의 Nginx 시작
2.
Nginx master 시작, Nginx slave 위의 keepalived (service keepalived start
)
3.ping VIP  ping 10.1.58.190
4. master 이상 시 뮬 레이 션, 자동 으로 slave 로 전환 하 는 지 확인
5. 로그 보기 tail -f  /var/logs/messages
9: 부하 균형
부하 균형 을 맞 추 려 면 master, slave 설정 파일 에 아래 설정 을 추가 하 십시오 virtual server 10.1.58.190 80 {    delay_loop 6    lb_algo rr    lb_kind NAT    nat_mask 255.255.255.0    persistence_timeout 50    protocol TCP    real_server 10.1.58.191 80 {        weight 3       TCP_CHECK {            connect_timeout 10            nb_get_retry 3            delay_before_retry 3            connect_port 80        }    }   real_server 10.1.58.181 80 {        weight 3       TCP_CHECK {            connect_timeout 10            nb_get_retry 3            delay_before_retry 3            connect_port 80        }    }

좋은 웹페이지 즐겨찾기