8分钟实现nginx高可用配置
一、keepalived的基本概念
在上面的篇章中使用了Nginx代理多个web服务器,之后访问Nginx服务的ip就可以代理访问到真实的web服务器,但是如果你的这台Nginx服务器死掉(宕机),此时所有有该Nginx代理的所有web容器将会无法访问,此时需要配置多个Nginx服务器作为备用机,但是多个Nginx服务器之间需要一个组件来进行协调,我们可以使用Keepalived进行协调,Keepalived可以使用高可用机制,在很多第三方组件都是用到的,最大的特征就是可以使用路由功能的算法虚拟出一个新的Ip地址,之后使用这个Ip地址代理多个真实的服务器。

二、实现Keepalived的配置
1、下载keepalived安装包
2、上传到服务器并解压
scp eepalived-1.2.24.tar.gz root@xxx:/usr/local/src/
tar -xzvf keepalived-1.2.24.tar.gz -C /usr/local/src/
3、进入到keepalived的保存目录中
cd /usr/local/src/keepalived-1.2.24/
4、配置Keepalived的保存路径:
./configure –prefix=/usr/
5、编译及安装
make
make install
如果此时配置成功的话在/usr/etc中出现相关的配置信息,以及会在/usr/sbin中出现启动的命令
6、对Keepalived进行虚拟路由的配置
root@ubuntu:/usr/etc# cd keepalived/
root@ubuntu:/usr/etc/keepalived# vim keepalived.conf
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state MASTER #主要机
interface eth0
virtual_router_id 51
priority 100 #优先级
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { #虚拟路由的ip
192.168.239.250
}
}
virtual_server 192.168.239.250 80 { #对应上面虚拟路由的ip地址
delay_loop 6
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
real_server 192.168.239.133 80 { #第一台nginx服务器的配置
weight 1
SSL_GET {
url {
path / #根路径下开始访问
status_code 200 #请求正常的时候开始访问
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
real_server 192.168.239.135 80 { #第二台Nginx服务配置
weight 1
SSL_GET {
url {
path / #根路径下开始访问
status_code 200 #请求正常的时候开始访问
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
7、启动keepalived服务
root@ubuntu:/etc/keepalived# service keepalived start
8、查看keepalived的状态
service keepalived status

9、克隆一台新的nginx服务器,并且修改一下两个配置项
root@ubuntu:/usr/etc/keepalived# vim keepalived.conf
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state BACKUP #备份机
interface eth0
virtual_router_id 51
priority 99 #优先级
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { #虚拟路由的ip
192.168.239.250
}
}
virtual_server 192.168.239.250 80 { #对应上面虚拟路由的ip地址
delay_loop 6
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
real_server 192.168.239.133 80 { #第一台nginx服务器的配置
weight 1
SSL_GET {
url {
path / #根路径下开始访问
status_code 200 #请求正常的时候开始访问
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
real_server 192.168.239.135 80 { #第二台Nginx服务配置
weight 1
SSL_GET {
url {
path / #根路径下开始访问
status_code 200 #请求正常的时候开始访问
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
主要修改以下两个配置 state BACKUP #备份机 priority 99 #优先级
10、浏览器使用虚拟ip访问Nginx服务器

以上访问的地址就是虚拟路由的ip地址
12、模拟宕机的情况
将Nginx的master机关机,如果可以正常访问,说明配置成功

相关推荐
-
PHP8种变量类型的详细讲解2025-02-22 00:32:24
-
php+apache 和 php+nginx的区别2025-02-22 00:21:27
-
PHP:与workerman结合实现定时任务2025-02-22 00:15:57
-
Nginx的Rewrite规则与实例2025-02-22 00:15:39
-
MySql中身份证字段的简单脱敏介绍2025-02-22 00:15:36