Keepalived + Nginx 고가 용 실현 (HA)

4502 단어
keepalived 의 HA 는 선점 모드 와 비 선점 모드 로 나 뉘 는데 선점 모드 인 MASTER 가 고장 에서 회복 되면 VIP 를 BACKUP 노드 에서 선점 합 니 다.비 선점 모드 즉, MASTER 회복 후 BACKUP 을 선점 하지 않 고 MASTER 로 업그레이드 한 후의 VIP 입 니 다.다음은 CentOS 7 에서 선점 모드 와 비 선점 모드 의 설정 방식 을 소개 합 니 다.
IP 주소 계획: VIP IP 호스트 이름 Nginx 포트 10.10.110 10.11.114 hct - nginx 01 80 10.10.11.110 10.11.110 10.11.146 hct - nginx 02 80 두 서버 의 VIP 는 10.10.11.110 입 니 다.
nginx 를 설정 합 니 다. 여 기 는 rpm 으로 직접 설 치 했 습 니 다. 소스 코드 설 치 는 홈 페이지 를 참고 하 십시오.http://nginx.org/ nginx 의 설정 파일 을 생략 합 니 다. 여 기 는 nginx 의 설정 을 설명 하 는 것 이 아 닙 니 다.
keepalived 를 설정 하기 전에 방화벽 을 설정 해 야 합 니 다. 112 포트 를 vim / etc / sysconf / iptables 설정 파일 에 다음 과 같은 규칙 을 추가 해 야 합 니 다. 그렇지 않 으 면 keepalived 간 에 통신 할 수 없습니다. -A INPUT - p vrrp - j ACCEPT 또는 명령 으로 구현: [root@localhost ~]#iptables -I INPUT -p 112 -j ACCEPT [root@localhost ~]#service iptables save [root@localhost~] \ # service iptables restart 여 기 는 keepalived: / etc / keepalived / keepalived. conf (MASTER) 를 중점적으로 설정 합 니 다.
global_defs { notification_email { [email protected] [email protected] [email protected] } notification_email_from [email protected] smtp_server 192.168.200.1 smtp_connect_timeout 30 router_id LVS_DEVEL }
vrrp_script chk_nginx {script "/ etc / keepalived / nginx check. sh" interval 2 \ # nginx 의 운행 상 태 를 2 초 에 한 번 씩 감지 합 니 다 weight - 20 \ # 실 패 했 습 니 다. 자신의 우선 순위 - 20}
vrrp_instance VI_1 {state MASTER \ # 메 인 노드 는 MASTER 이 고 백업 노드 는 BACKUP interface eth 1 \ # VIP 를 연결 하 는 네트워크 인터페이스 입 니 다. ifconfig 를 통 해 자신의 네트워크 인터페이스 virtual router id 110 \ # 가상 경로 의 ID 번 호 를 볼 수 있 습 니 다. 두 노드 의 설정 은 똑 같 아야 합 니 다. IP 마지막 부분 을 선택 하여 사용 할 수 있 습 니 다. 같은 VRID 를 한 그룹 으로 할 수 있 습 니 다. 그 는 멀티캐스트 MAC 주 소 를 결정 할 것 입 니 다.
priority 100 \ # 노드 우선 순위, 값 범위 0 ~ 254, MASTER 는 BACKUP 보다 advert int 1 \ # 멀티캐스트 정보 전송 시간 간격, 두 노드 는 똑 같이 설정 해 야 합 니 다. 기본 값 은 1 초 에 검증 정 보 를 설정 하고 두 노드 는 일치 해 야 합 니 다 authentication {auth type PASS auth pass 1111}가상 IP, 두 노드 설정 이 같 아야 합 니 다. 여러 개 를 설정 할 수 있 습 니 다. 한 줄 에 virtual ipaddress {10.10.1110} 을 쓸 수 있 습 니 다.
track script {chk nginx \ # nginx 생존 상태 검사 스 크 립 트} ~ keepalived: / etc / keepalived / keepalived. conf (BACKUP) globaldefs { notification_email { [email protected] [email protected] [email protected] } notification_email_from [email protected] smtp_server 192.168.200.1 smtp_connect_timeout 30 router_id LVS_DEVEL }
vrrp_script chk_nginx {script "/ etc / keepalived / nginx check. sh" interval 2 \ # nginx 의 운행 상 태 를 2 초 에 한 번 씩 감지 합 니 다 weight - 20 \ # 실 패 했 습 니 다. 자신의 우선 순위 - 20}
vrrp_instance VI_1 {state BACKUP \ # 메 인 노드 는 MASTER 이 고 백업 노드 는 BACKUP interface eth 1 \ # VIP 를 연결 하 는 네트워크 인터페이스 입 니 다. ifconfig 를 통 해 자신의 네트워크 인터페이스 virtual router id 110 \ # 가상 경로 의 ID 번 호 를 볼 수 있 습 니 다. 두 노드 의 설정 은 똑 같 아야 합 니 다. IP 마지막 부분 을 선택 하여 사용 할 수 있 습 니 다. 같은 VRID 를 한 그룹 으로 할 수 있 습 니 다. 그 는 멀티캐스트 MAC 주소 priority 90 \ # 노드 우선 순위, 값 범위 0 ~254, MASTER 는 BACKUP 보다 advert int 1 \ # 멀티캐스트 정보 전송 시간 간격 이 높 습 니 다. 두 노드 는 똑 같이 설정 해 야 합 니 다. 기본 값 은 1 초 에 인증 정 보 를 설정 하고 두 노드 는 authentication {auth type PASS auth pass 1111} 가상 IP 와 일치 해 야 합 니 다. 두 노드 는 똑 같이 설정 해 야 합 니 다. 여러 개 를 설정 할 수 있 습 니 다. 한 줄 에 virtual ipaddress {10.10.1110} 을 쓸 수 있 습 니 다.
track script {chk nginx \ # nginx 생존 상태 검사 스 크 립 트} ~
nginx 서비스 검색 스 크 립 트 만 들 기
각각 홈 서버 / etc / keepalived 디 렉 터 리 에 nginx check. sh 스 크 립 트 를 만 들 고 실행 권한 chmod + x / etc / keepalived / nginx check. sh 를 추가 합 니 다. keepalived 에서 nginx 의 서비스 상 태 를 정기 적 으로 감지 합 니 다. nginx 가 멈 추 면 nginx 를 다시 시작 하려 고 시도 합 니 다. 시작 에 실패 하면 keepalived 프로 세 스 를 죽 이 고 vip 를 백업 기기 로 이동 합 니 다.
#!/bin/bash
A=`ps -C nginx --no-header | wc -l`
if [ $A -eq 0 ];then
    /usr/sbin/nginx #      nginx
    sleep 2  #  2 
    if [ `ps -C nginx --no-header | wc -l` -eq 0 ];then
        killall keepalived #    , keepalived    。 vip         
    fi
fi

keepalived 서비스 시작
[root@localhost ~]# servive keepalived start [root@localhost ~]# ps -ef |grep keepalived [root@localhost ~]# ps -ef | grep keepalived
비 선점 모드
비 선점 모드 설정 에 비해 두 곳 만 바 뀌 었 습 니 다. 1 > vrrp instance 블록 아래 두 노드 에 각각 nopreempt 명령 을 추 가 했 습 니 다. vip 2 > 노드 를 빼 앗 지 않 는 state 는 모두 BACKUP 이 고 두 keepalived 노드 가 모두 시 작 된 후에 기본 값 은 BACKUP 상태 입 니 다. 쌍방 은 그룹 방송 정 보 를 보 낸 후에 우선 순위 에 따라 MASTER 를 선택 합 니 다. 둘 다 nop 를 설정 하기 때 문 입 니 다.reempt, 따라서 MASTER 가 고장 에서 회복 되면 vip 를 선점 하지 않 습 니 다. 그러면 VIP 전환 으로 인 한 서비스 지연 을 피 할 수 있 습 니 다.
참고 주소:https://blog.csdn.net/xyang81/article/details/52556886

좋은 웹페이지 즐겨찾기