3. keepalived 설정 nginx 자동 재 부팅, 7X 24 끊 임 없 는 서비스 실현
3708 단어 keepalived 원리 와 실전
/ etc / keepalived / 디 렉 터 리 에 nginx 리 셋 스 크 립 트 를 만 듭 니 다.
vi check_nginx_alive_or_not.sh
내용 은 아래 와 같다
#!/bin/bash
A=`ps -C nginx --no-header |wc -l`
# nginx ,
if [ $A -eq 0 ];then
/opt/server/nginx/sbin/nginx
# 3 nginx, , keepalived,
sleep 3
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
killall keepalived
fi
fi
2. keepalived 감청 스 크 립 트 설정
! Configuration File for keepalived
global_defs {
router_id keep_47
}
vrrp_script check_nginx_alive{
#
script "/etc/keepalived/check_nginx_alive_or_not.sh"
#
interval 2
# , +10, -10, , -10
weight 10
}
#
vrrp_instance VI_1 {
state MASTER
#
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script{
# nginx
check_nginx_alive
}
virtual_ipaddress {
172.17.35.161
}
}
3. keepalived 재 부팅
systemctl restart keepalived
테스트
메 인 노드 의 nginx 서 비 스 를 중단 한 후 가상 IP 에 접근 합 니 다.http://172.17.35.161/정상적으로 방문 할 수 있다.이 유 는 keepalived 서비스 가 2 초 간격 으로 nginx 서비스 상 태 를 검사 하고 nginx 서비스 가 중단 되면 nginx 서 비 스 를 시작 합 니 다. 만약 에 3 초 후에 nginx 서비스 가 시작 되 지 않 으 면 keepalived 서 비 스 를 중단 하고 가상 IP 를 예비 노드 에 연결 시 키 며 예비 노드 가 메 인 노드 를 대체 하여 7X 24 시간 동안 중단 되 지 않 는 서 비 스 를 실현 합 니 다.