8分钟实现nginx高可用配置

一、keepalived的基本概念

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

8分钟实现nginx高可用配置


二、实现Keepalived的配置

1、下载keepalived安装包

下载地址:https://www.keepalived.org/download.html

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 {

[email protected]

[email protected]

[email protected]

}

notification_email_from [email protected]

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

8分钟实现nginx高可用配置


9、克隆一台新的nginx服务器,并且修改一下两个配置项

root@ubuntu:/usr/etc/keepalived# vim keepalived.conf

global_defs {

notification_email {

[email protected]

[email protected]

[email protected]

}

notification_email_from [email protected]

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服务器

8分钟实现nginx高可用配置

以上访问的地址就是虚拟路由的ip地址

12、模拟宕机的情况

将Nginx的master机关机,如果可以正常访问,说明配置成功

8分钟实现nginx高可用配置



分享到:


相關文章: