利用keepalived实现nginx和php-fpm 两台服务器中的服务互为主从
实现keepalived的双主模型 ,要求 ,实现nginx和php-fpm 两台服务器中的服务互为主从
提示:keepallved直接漂移IP
机器名称 |
IP配置 |
服务角色 |
备注 |
web1 |
RIP:172.17.251.137 VIP1:172.17.211.101 VIP2:172.17.211.102 |
web服务器 |
配置keepalived,设置2个VIP nginx php-fpm |
web2 |
RIP:172.17.251.147 VIP1:172.17.211.101 VIP2:172.17.211.102 |
web服务器 |
配置keepalived nginx php-fpm |
在web1服务器上:
红色部分是更改的部分
iptables -F
setenforce 0
yum install keepalived -y
vim /etc/keepalived/keepalived.conf
global_defs {
notification_email {
}
notification_email_from [email protected]
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL11
}
vrrp_instance VI_1 {
state MASTER
interface ens34
virtual_router_id 212
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1234
}
virtual_ipaddress {
172.17.211.101
}
}
vrrp_instance VI_2 {
state BACKUP
interface ens34
virtual_router_id 213
priority 98
advert_int 1
authentication {
auth_type PASS
auth_pass 1234
}
virtual_ipaddress {
172.17.211.102
}
}
vim /etc/nginx/nginx.conf 修改端口绑定ip,nginx绑定VIP1:172.17.211.101,php-fpm绑定VIP2:172.17.211.102
vim /etc/php-fpm.d/www.conf 修改端口绑定ip 注意:这个文件改两项
listen = 0.0.0.0:9000
listen.allowed_clients = any
systemctl restart keepalived
在web2服务器上:
iptables -F
setenforce 0
yum install keepalived -y
vim /etc/keepalived/keepalived.conf
global_defs {
notification_email {
}
notification_email_from [email protected]
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL11
}
vrrp_instance VI_1 {
state BACKUP
interface ens34
virtual_router_id 212
priority 98
advert_int 1
authentication {
auth_type PASS
auth_pass 1234
}
virtual_ipaddress {
172.17.211.101
}
}
vrrp_instance VI_2 {
state MASTER
interface ens34
virtual_router_id 213
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1234
}
virtual_ipaddress {
172.17.211.102
}
}
vim /etc/nginx/nginx.conf 修改端口绑定ip,nginx绑定VIP1:172.17.211.101,php-fpm绑定VIP2:172.17.211.102
vim /etc/php-fpm.d/www.conf 修改端口绑定ip 注意:这个文件改两项
listen = 0.0.0.0:9000
listen.allowed_clients = any
systemctl restart keepalived
测试:
web1正常时:
此时访问172.17.211.101,显示test1,可知是web1在提供nginx,web2提供php-fpm服务。
web2正常时:
web1服务器宕机时:
web1上:
systemctl stop keepalived 模拟宕机
ip a 没有172.17.211.101这个VIP
web2上:两个VIP都飘到web2服务器上
此时访问172.17.211.101,显示test2,可知是web2服务器在提供nginx和php-fpm服务。
同理:web2服务器宕机时,显示test1,可知是web1服务器在提供nginx和php-fpm服务。