您的位置:首页 > 运维架构 > Nginx

nginx+LVS+keepalived实现企业高可用

2017-07-18 16:54 483 查看
拓扑:



nginx线上服务器未避免单点故障,通常会做高可用,一般和lvs以及keepalived组件结合一起使用,实现双机热备功能,如果nginx01服务器宕机,nginx02服务器接管工作。

一.简单介绍

Keepalived是一个基于VRRP协议来实现的服务高可用方案,可以利用其来避免IP单点故障,

它一般不会单独出现,而是与其它负载均衡技术(如lvs、haproxy、nginx)一起工作来达到集群的高可用。

VRRP全称 Virtual Router Redundancy Protocol,即 虚拟路由冗余协议。可以认为它是实现路由器高可用的容错协议,即将N台提供相同功能的路由器组成一个路由器组(Router Group),这个组里面有一个master和多个backup,但在外界看来就像一台一样,构成虚拟路由器,拥有一个虚拟IP(vip,也就是路由器所在局域网内其他机器的默认路由),占有这个IP的master实际负责ARP相应和转发IP数据包,组中的其它路由器作为备份的角色处于待命状态。master会发组播消息,当backup在超时时间内收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master,保证路由器的高可用。

LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。

二.安装配置

nginx安装配置,笔者已在之前的文章中提到过,本文就不在详细描述,详细参考该篇文章:
http://blog.csdn.net/qq_29791231/article/details/72828761
1.两台nginx服务器安装ipvsadm,通过yum安装,实现系统支持LVS

 yum install -y ipvsadm

2.安装keepalived组件

 cd /usr/local/src

 wget http://www.keepalived.org/software/keepalived-1.2.13.tar.gz
 tar -zxvf keepalived-1.2.13.tar.gz

 cd keepalived-1.2.13

 ./configure 

 make && make install

3.配置规范启动:

cp -r /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/

cp -r /usr/local/etc/sysconfig/keepalived /etc/sysconfig/

mkdir -p /etc/keepalived                                                                                ====>创建keepalived默认配置路径

cp -r /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/            ====>把keepalived.conf模板拷贝到/etc/keepalived目录下

cp -r /usr/local/sbin/keepalived /usr/sbin/

启动keepalived

/etc/init.d/keepalived start

出现如下三个进程代表配置成功



4.keepalived.conf配置

停止双机keepalived服务

/etc/init.d/keepalived stop

修改/etc/keepalived/keealived.conf配置文件,如下:



5.在VIP漂移测试



ip addr add 192.168.186.140/24 dev eno16777736                         ====>添加虚拟IP(VIP)至nginx01服务器网卡

使用命令ip add|grep 192.168.186.140



vip只在一端说明正常,nginx02服务器使用上述命令查询不到该vip,只有nginx01宕机才会出现

测试ip漂移,关闭nginx01服务器keepalived

/etc/init.d/keealived stop

在nginx02查看ip是否漂移过来



6.nginx.conf配置修改

修改/server/nginx/nginx.conf中的server_name为vip:192.168.186.140



重载nginx配置:/server/nginx/sbin/nginx -s reload

即可使用192.168.186.140访问nginx原始页面



注意:

这里存在个问题,当双机防火墙开启时,会出现MASTER和BACKUP同时都出现vip的情况,这是由于MASTER防火墙阻挡了VRRP组播,关闭双机防火墙即可;如需开启防火墙,需要对双机添加如下配置

配置防火墙/etc/sysconfig/iptables

vim /etc/sysconfig/iptables

在-A INPUT -j REJECT --reject-with icmp-host-prohibited之前添加如下规则

-A INPUT -p vrrp -j ACCEPT
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息