nginx keepalived 설정

5568 단어 nginxkeepalived
선언:
대형 웹 프로젝트 에 있어 서 없어 서 는 안 될 것 은 바로 고가 용이 다.
그러면 회사 업무 가 발전 함 에 따라 nginx 로 부하 균형 을 잡 으 면 일 평균 백만 PV 의 방문 을 지탱 할 수 있 고 2 년 동안 운행 하면 서 단일 고장 이 발생 하지 않 았 지만 단일 고장 으로 인 한 업무 중단 을 피 하 는 것 도 고려 해 야 한다.
keepalived 프로필:
keepalived 프로젝트 의 주요 목 표 는 Liux 시스템 과 Liux 인 프 라 시설 에 균형 적 이 고 사용 가능 한 것 을 제공 하 는 것 이다.
부하 균형 구 조 는 IPVS 커 널 모듈 에 의존 하여 4 층 부하 균형 을 제공 하고 keepalived 는 동적 검사 와 부하 탱크 기반 관리 서 비 스 를 실현 했다.한편, 고가 용성 은 VRRP 프로 토 콜 을 통 해 이 뤄 진다.간단 한 프레임 워 크 는 단독 또는 함께 탄성 인 프 라 를 제공 할 수 있다.
keepalived 프로필:
keepalived. conf 파일 은 세 개의 설정 부분 으로 구성 되 어 있 습 니 다.
  • Globals configurations   전역 설정
  • VRRP configuration    VRRP 설정
  • LVS configuration    LVS 설정
  • 약속:
    이 글 은 nginx 설치 소 개 를 하지 않 습 니 다. nginx 설치 에 관 한 것 은 앞의 글 을 참고 할 수 있 습 니 다.
    시스템: centos 6.8 최소 화
    원본 파일 디 렉 터 리: / usr / local / src
    master_ip:192.168.1.10
    backup_ip:192.168.1.11
    vip:192.168.1.20
    keepalived 홈 페이지http://www.keepalived.org/
    keepalived master 에 표 시 된 설정 항목 이 상대 적 으로 많 습 니 다. 상황 에 따라 선택 하여 사용 할 수 있 습 니 다. 
    각각 메 인 nginx 에 keepalived 설정 을 설치 합 니 다.
    준비:
    keepalived 원본 패키지 다운로드:
    wget http://www.keepalived.org/software/keepalived-1.3.2.tar.gz

    설치 개발 도구:
    yum install gcc-c++ openssl-devel

    iptables 설정:
    iptables 를 닫 거나 주 된 연결 을 허용 합 니 다.
    iptables -I INPUT -i eth1 -s 192.168.1.11 -j ACCEPT
    iptables -I INPUT -i eth1 -s 192.168.1.10 -j ACCEPT

    설치 keepalived:
    압축 풀기:
    tar zxf keepalived-1.3.2.tar.gz

    컴 파일 설치 설정:
    cd keepalived-1.3.2
    ./configure
    make
    make install

    프로필 과 서비스 만 들 기:
    cp -r keepalived/etc/keepalived/ /etc/
    cp keepalived/etc/init.d/keepalived.rh.init /etc/init.d/keepalived
    cp keepalived/etc/sysconfig/keepalived /etc/sysconfig/

    keepalived 설정:
    master keepalived.conf
    ! Configuration File for keepalived
    
    global_defs {
       notification_email {
         [email protected]    #         
       }
       notification_email_from [email protected]    #         
       smtp_server 192.168.200.1    #     SMTP    ,  ip   .      (  25)
       smtp_connect_timeout 30    #smtp       
       router_id LVS_DEVEL    #    ,      
       vrrp_skip_check_adv_addr    
       #vrrp_strict    #    VRRP    ,          
       vrrp_garp_interval 0
       vrrp_gna_interval 0
       script_user keepalived_script       #             。          。
                                               #     ,   keepalived_script   ,     ,   root
       enable_script_security                 #      root  ,       root    。
    }
    
    vrrp_script chk_nginx_service {    #VRRP     
        script "/usr/local/keepalived/nginx-ha-check"    #        
        interval 3    #         , 
        weight -50    #  ,     (-255-255)。priority            priority 
                                #               。
        fall 3              #           ,  
        rise 2              #           ,     ,  
        user keepalived_script    #          
    }
    
    vrrp_instance VI_1 {    #VRRP     
        state MASTER    #      ,MASTER|BACKUP
        interface eth0    #     
        #mcast_src_ip 192.168.1.10        # VRRP       ip  
        unicast_src_ip 192.168.1.10        # VRRP       ip   (alias to mcast_src_ip)
        unicast_peer {            #    VRRP  ,    
          192.168.1.11            #     ip,     
        virtual_router_id 51    #VRRP     (-1-255),    
        priority 100    #   ,-1-255,         
        advert_int 1    #VRRP     
        authentication {    #    
            auth_type PASS    #    
            auth_pass 1111    #     
        }
        virtual_ipaddress {    #VRRP   ,    
            192.168.1.20
        }
        track_script {    #      
            chk_nginx_service    #    ,            。chk_nginx_service weight -20
        }
    }

    backup keepalived.conf
    ! Configuration File for keepalived
    
    global_defs {
       notification_email {
         [email protected]
       }
       notification_email_from [email protected]
       smtp_server 192.168.200.1
       smtp_connect_timeout 30
       router_id LVS_DEVEL
       vrrp_skip_check_adv_addr
       vrrp_strict
       vrrp_garp_interval 0
       vrrp_gna_interval 0
    }
    
    vrrp_script chk_nginx_service {
        script "/usr/local/keepalived/nginx-ha-check"
        interval 3
        weight -10
    }
    
    vrrp_instance VI_1 {
        state BACKUP
        interface eth0
        virtual_router_id 51
        priority 90
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.1.20
        }
        track_script {
            chk_nginx_service
        }
    }

    nginx - ha - check 스 크 립 트
    chmod +x nginx-ha-check
    #!/bin/sh
    
    PATH=/bin:/sbin:/usr/bin:/usr/sbin
    
    STATEFILE=/var/run/nginx-ha-keepalived.state
    
    if [ -s "$STATEFILE" ]; then
        . "$STATEFILE"
        case "$STATE" in
            "BACKUP"|"MASTER"|"FAULT")
                    service nginx status
                    exit $?
                    ;;
            *|"")
                    logger -t nginx-ha-keepalived "Unknown state: '$STATE'"
                    exit 1
                    ;;
        esac
    fi
    
    service nginx status
    exit $?

    시작 서비스:
    service keepalived start

    인증:
    메 인 서비스 설치 설정 이 완료 되면 브 라 우 저 방위 192.168.1.20 주 소 를 통 해 메 인 nginx 서 비 스 를 중단 하고 192.168.1.20 에 다시 방문 하여 페이지 를 볼 수 있 습 니 다.
    nginx 메 인 서 비 스 는 유일한 표 지 를 확인 할 수 있 는 페이지 가 필요 합 니 다. 예 를 들 어 index. html 에서 메 인 서 비 스 를 표시 합 니 다.
    동시에 관찰 가능 / var / log / messages 로그 정보

    좋은 웹페이지 즐겨찾기