Keepalived+Nginx 高可用集群(主从模式)
集群架构图
1、准备两台装有Nginx虚拟机
2、都需安装Keepalived
1
|
yum install keepalived -y |
查看是否安装成功
1
|
rpm -q -a keepalived |
安装之后,在 etc 里面生成目录 keepalived,有文件 keepalived.conf
3、完成高可用配置(主从配置)
修改/etc/keepalived/keepalivec.conf 配置文件
主服务配置:keepalivec.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
global_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.19.129 smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_script chk_http_port { script "/usr/local/src/nginx_check.sh" interval 2 #(检测脚本执行的间隔) weight 2 } vrrp_instance VI_1 { state MASTER # 备份服务器上将 MASTER 改为 BACKUP interface ens33 // 网卡 virtual_router_id 51 # 主、备机的 virtual_router_id 必须相同 priority 100 # 主、备机取不同的优先级,主机值较大,备份机值较小 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.19.50 # VRRP H 虚拟地址(非真实物理地址) } } |
从服务配置:keepalivec.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
global_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.19.129 smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_script chk_http_port { script "/usr/local/src/nginx_check.sh" interval 2 #(检测脚本执行的间隔) weight 2 } vrrp_instance VI_1 { state BACKUP # 备份服务器上将 MASTER 改为 BACKUP interface ens33 // 网卡 virtual_router_id 51 # 主、备机的 virtual_router_id 必须相同 priority 90 # 主、备机取不同的优先级,主机值较大,备份机值较小 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.19.50 # VRRP H 虚拟地址(非真实物理地址) } } |
在/usr/local/src 添加检测脚本,两台虚拟机都要添加
添加文件:nginx_check.sh
1
2
3
4
5
6
7
8
9
|
#!/bin/bash A=` ps -C nginx –no-header | wc -l` if [ $A - eq 0 ]; then /usr/local/nginx/sbin/nginx sleep 2 if [ ` ps -C nginx --no-header | wc -l` - eq 0 ]; then killall keepalived fi fi |
把两台服务器上 nginx 和 keepalived 启动 重新启动 nginx 启动 keepalived:
1
|
systemctl start keepalived.service |
检验keepalived是否启动成功
1
|
ps -ef | grep keepalived |
最终测试 在浏览器地址栏输入 虚拟 ip 地址 192.168.17.50访问
在master 输入 ip a 可以查看到
停止主服务器仍可以访问从服务器
1
2
|
systemctl stop keepalived.service docker stop mynginx |
至此实现nginx高可用集群。更多相关nginx 高可用集群内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://blog.csdn.net/qq_29385297/article/details/127828384