Centos 7 아래 Nginx Keepalived Cluster 구축
8046 단어 linux
CentOS Linux release 7.4.1708 (Core)
nginx version: nginx/1.12.2
Keepalived v1.3.5 (03/19,2017), git commit v1.3.5-6-g6fa32f2
Nginx Master Node:10.10.200.3
Nginx Backup Node:10.10.200.2
VIP:10.10.200.100
조작 순서
설치 nginx
keepalived 설정 절 차 를 주로 설명 하기 때문에 nginx 는 가장 간단 한 모드 로 설치 합 니 다.
#yum -y install nginx
테스트 를 위해 nginx server 의 index. html 파일 을 각각 다음 과 같이 수정 합 니 다.
Nginx Server:10.10.200.3
Nginx
10.10.200.3
Nginx Server:10.10.200.2
Nginx
10.10.200.2
이렇게 하면 우 리 는 curl 을 통 해 다음 과 같은 정 보 를 얻 을 수 있다.
[root@nginx-backup sbin]# curl -l http://10.10.200.3
Nginx
10.10.200.3
[root@nginx-backup sbin]# curl -l http://10.10.200.2
Nginx
10.10.200.2
설치 설정 Keepalived
#yum -y install ipset keepalived
반드시 ipset 를 설치 해 야 합 니 다. 그렇지 않 으 면 나중에 keepalived 를 설치 하 는 과정 에서 오류 가 발생 할 수 있 습 니 다!!
Nginx Master & Backup Node 에서 nginx 모니터링 스 크 립 트 를 편집 합 니 다. / usr / local / keepalived / sbin 디 렉 터 리 에 스 크 립 트 를 놓 습 니 다.
[root@nginx-backup sbin]# vi check_nginx_alive.sh
#!/bin/bash
counter=$(ps -C nginx --no-heading|wc -l)
if [ "${counter}" = "0" ]; then
/usr/local/nginx/sbin/nginx
sleep 2
counter=$(ps -C nginx --no-heading|wc -l)
if [ "${counter}" = "0" ]; then
systemctl stop keepalived.service
exit 1
fi
fi
exit 0
실행 가능 한 권한 추가
# chmod a+x check_nginx_alive.sh
Nginx Master Node (10.10200.3) 프로필 은 다음 과 같 습 니 다.
! Configuration File for keepalived
vrrp_script check_nginx_alive {
script "/usr/local/keepalived/sbin/check_nginx_alive.sh"
interval 2
weight -10
}
global_defs {
notification_email {
[email protected]
}
script_user root //
enable_script_security //
notification_email_from [email protected]
smtp_server smtp.exmail.qq.com
smtp_connect_timeout 30
router_id LVS_DEVEL_1 // ID, Backup Node
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state MASTER // Master Master, Backup Backup
interface em2 //VIP
virtual_router_id 51 // BackUp Node
priority 102 //Master Node Backup Node
advert_int 1
authentication { //Master Node Backup Node
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.10.200.100/24 //VIP Address
}
track_script {
check_nginx_alive
}
}
Nginx Backup Node (10.10.2002) 프로필 은 다음 과 같 습 니 다.
! Configuration File for keepalived
vrrp_script check_nginx_alive {
script "/usr/local/keepalived/sbin/check_nginx_alive.sh"
interval 2
weight -10
}
global_defs {
notification_email {
[email protected]
}
script_user root
enable_script_security
notification_email_from [email protected]
smtp_server smtp.exmail.qq.com
smtp_connect_timeout 30
router_id LVS_DEVEL_2
vrrp_skip_check_adv_addr
script_user root
enable_script_security
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state BACKUP
interface em2
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.10.200.100/24
}
track_script {
check_nginx_alive
}
}
설정 이 완료 되면 각각 Nginx Server 2 대 에서 keepalived 와 Nginx 를 시작 합 니 다.
Master Node 에서 ip addr 를 통 해 VIP 를 볼 수 있 습 니 다:
3: em2: mtu 1500 qdisc mq state UP qlen 1000
link/ether 84:8f:69:da:60:7b brd ff:ff:ff:ff:ff:ff
inet 10.10.200.3/24 brd 10.10.200.255 scope global em2
valid_lft forever preferred_lft forever
inet 10.10.200.100/24 scope global secondary em2
valid_lft forever preferred_lft forever
inet6 fe80::f1d5:a5ab:3d0d:ef6/64 scope link
valid_lft forever preferred_lft forever
ping 통 VIP 도 가능:
[root@kvm-server ~]# ping 10.10.200.100
PING 10.10.200.100 (10.10.200.100) 56(84) bytes of data.
64 bytes from 10.10.200.100: icmp_seq=1 ttl=64 time=0.052 ms
64 bytes from 10.10.200.100: icmp_seq=2 ttl=64 time=0.040 ms
64 bytes from 10.10.200.100: icmp_seq=3 ttl=64 time=0.040 ms
64 bytes from 10.10.200.100: icmp_seq=4 ttl=64 time=0.049 ms
curl 을 통 해 10.10.200.100 페이지 를 확인 합 니 다. 이때 10.10.200.100 을 통 해 방문 한 데이터 일 때 Nginx Master Node (10.10.200.3) 의 페이지 데 이 터 를 볼 수 있 습 니 다.
[root@kvm-server ~]# curl -l http://10.10.200.100
Nginx
10.10.200.3
Nginx Master Node 의 nginx 서 비 스 를 중단 하고 keepalived 가 nginx 서 비 스 를 Nginx Backup Node (10.10.2002) 위로 전환 할 지 테스트 합 니 다.
#/etc/init.d/nginx stop
이 때 Nginx BackUp Node (10.10.2002) 의 로그 정 보 를 보면 VIP 가 전환 되 었 습 니 다.
#tail -f /var/log/message
Jul 30 15:04:55 nginx-backup Keepalived_vrrp[23293]: VRRP_Instance(VI_1) forcing a new MASTER election
Jul 30 15:04:56 nginx-backup Keepalived_vrrp[23293]: VRRP_Instance(VI_1) Transition to MASTER STATE
Jul 30 15:04:57 nginx-backup Keepalived_vrrp[23293]: VRRP_Instance(VI_1) Entering MASTER STATE
Jul 30 15:04:57 nginx-backup Keepalived_vrrp[23293]: VRRP_Instance(VI_1) setting protocol iptable drop rule
Jul 30 15:04:57 nginx-backup Keepalived_vrrp[23293]: VRRP_Instance(VI_1) setting protocol VIPs.
Jul 30 15:04:57 nginx-backup Keepalived_vrrp[23293]: Sending gratuitous ARP on em2 for 10.10.200.100
Jul 30 15:04:57 nginx-backup Keepalived_vrrp[23293]: VRRP_Instance(VI_1) Sending/queueing gratuitous ARPs on em2 for 10.10.200.100
Jul 30 15:04:57 nginx-backup Keepalived_vrrp[23293]: Sending gratuitous ARP on em2 for 10.10.200.100
Jul 30 15:04:57 nginx-backup Keepalived_vrrp[23293]: Sending gratuitous ARP on em2 for 10.10.200.100
Jul 30 15:04:57 nginx-backup Keepalived_vrrp[23293]: Sending gratuitous ARP on em2 for 10.10.200.100
Jul 30 15:04:57 nginx-backup Keepalived_vrrp[23293]: Sending gratuitous ARP on em2 for 10.10.200.100
Jul 30 15:05:02 nginx-backup Keepalived_vrrp[23293]: Sending gratuitous ARP on em2 for 10.10.200.100
Jul 30 15:05:02 nginx-backup Keepalived_vrrp[23293]: VRRP_Instance(VI_1) Sending/queueing gratuitous ARPs on em2 for 10.10.200.100
Jul 30 15:05:02 nginx-backup Keepalived_vrrp[23293]: Sending gratuitous ARP on em2 for 10.10.200.100
Jul 30 15:05:02 nginx-backup Keepalived_vrrp[23293]: Sending gratuitous ARP on em2 for 10.10.200.100
Jul 30 15:05:02 nginx-backup Keepalived_vrrp[23293]: Sending gratuitous ARP on em2 for 10.10.200.100
Jul 30 15:05:02 nginx-backup Keepalived_vrrp[23293]: Sending gratuitous ARP on em2 for 10.10.200.100
ip addr 로 보기
3: em2: mtu 1500 qdisc mq state UP qlen 1000
link/ether 84:8f:69:da:5e:68 brd ff:ff:ff:ff:ff:ff
inet 10.10.200.2/24 brd 10.10.200.255 scope global em2
valid_lft forever preferred_lft forever
inet 10.10.200.100/24 scope global secondary em2
valid_lft forever preferred_lft forever
inet6 fe80::d7ca:173b:3e56:65f5/64 scope link
valid_lft forever preferred_lft forever
curl 을 통 해 10.10.20.100 페이지 데 이 터 를 가 져 옵 니 다. 이 페이지 데 이 터 는 Nginx BackUp Node (10.10.20.2) 의 데이터 여야 합 니 다.
[root@nginx-backup sbin]# curl -l http://10.10.200.100
Nginx
10.10.200.2
위의 조작 을 통 해 keepalived 가 nginx cluster 의 master & backup node 를 정상적으로 전환 할 수 있다 는 것 을 설명 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
용감한 바로 가기 및 우분투 응용 프로그램안녕하세요 여러분, 이 기사에서는 모든 사이트에서 pwa를 생성하고 실행기 응용 프로그램으로 추가하는 방법을 설명하고 싶습니다. 일부 웹사이트는 PWA로 설치를 허용하지 않지만 유사한 애플리케이션을 원합니다. 1. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.