一、keepalived的基本概念
在上面的篇章中使用了Nginx代理多个web服务器,之后访问Nginx服务的ip就可以代理访问到真实的web服务器,但是如果你的这台Nginx服务器死掉(宕机),此时所有有该Nginx代理的所有web容器将会无法访问,此时需要配置多个Nginx服务器作为备用机,但是多个Nginx服务器之间需要一个组件来进行协调,我们可以使用Keepalived进行协调,Keepalived可以使用高可用机制,在很多第三方组件都是用到的,最大的特征就是可以使用路由功能的算法虚拟出一个新的Ip地址,之后使用这个Ip地址代理多个真实的服务器。
目录
二、实现Keepalived的配置
1、下载keepalived安装包
下载地址:https://www.keepalived.org/download.html2、上传到服务器并解压
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 start8、查看keepalived的状态
service keepalived status9、克隆一台新的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服务器
以上访问的地址就是虚拟路由的ip地址
12、模拟宕机的情况
将Nginx的master机关机,如果可以正常访问,说明配置成功