0%

实战| Nginx+keepalived 实现高可用集群_51CTO博客_keepalived nginx集群

Excerpt

实战| Nginx+keepalived 实现高可用集群,今天通过两个实战案例,带大家理解Nginx+keepalived如何实现高可用集群,在学习新知识之前您可以选择性复习之前的知识点


Nginx+Keepalived 高可用集群(主从模式)

集群架构图

实战| Nginx+keepalived 实现高可用集群_Nginx+keepalived

注意:Keepalived服务器同样是nginx负载均衡器。

1、准备四台机器

实战| Nginx+keepalived 实现高可用集群_Nginx+keepalived _02

本实验系统均使用Centos 7.5,在所有节点进行以下操作:

2、配置后端web服务器

2.1)修改web01节点网站根目录默认文件

2.2)修改web02节点网站根目录默认文件

通过nginx主配置文件,可以看出nginx网站根目录文件默认是:/usr/share/nginx,如下:

实战| Nginx+keepalived 实现高可用集群_Nginx+keepalived _03

2.3)启动nginx服务

2.4)验证

实战| Nginx+keepalived 实现高可用集群_Nginx+keepalived _04

主机web01和web02已配置成web服务器

3、配置LB服务器

LB服务器需同时部署nginx和Keepalived服务,以下操作均在两台LB节点执行:

3.1)配置nginx反向代理服务

实战| Nginx+keepalived 实现高可用集群_Nginx+keepalived _05

启动nginx服务;验证效果:

访问LB01:

实战| Nginx+keepalived 实现高可用集群_Nginx+keepalived _06

访问LB02:

实战| Nginx+keepalived 实现高可用集群_Nginx+keepalived _07

如图所示,LB01和LB02均可轮询访问后端web节点,即表示nginx LB集群搭建成功。

3.2)配置Keepalived服务

(1)安装Keepalived

(2)配置Keepalived服务

这里直接提供LB01与LB02两者配置文件差异对比,方便读者阅读:

实战| Nginx+keepalived 实现高可用集群_Nginx+keepalived _08左:LB01 右:LB02

(3)谁是主Keepalived?

通过上图得知,LB01优先级高于LB02,因此VIP绑定在LB01上:

4、域名解析

由于不是真实环境,域名使用www.test.com用作测试,所以www.test.com的解析只能在客户机hosts文件设置。具体步骤如下:

打开:

C:\Windows\System32\drivers\etc\hosts

在末尾添加:

192.168.1.110 www.test.com

注意:这里的IP指的是浮动IP,即通过客户端通过VIP访问web业务

5、测试验证

实战| Nginx+keepalived 实现高可用集群_Nginx+keepalived _09


关闭LB01节点的keepalived服务。再次访问:

实战| Nginx+keepalived 实现高可用集群_Nginx+keepalived _10实战| Nginx+keepalived 实现高可用集群_Nginx+keepalived _11

发现依然可以通过域名进行访问,只是此时VIP已绑定在LB02上,如下所示:

到此,Nginx+Keepalived 高可用集群(主从)就搭建完成了。

Nginx+Keepalived 高可用集群(双主模式)

将keepalived做成双主模式,其实很简单,就是再配置一段新的vrrp_instance(实例)规则。

集群架构图:

实战| Nginx+keepalived 实现高可用集群_Nginx+keepalived _12

说明:还按照上面的环境继续做实验,只是修改LB节点上面的keepalived服务的配置文件即可。

此时LB-01节点既为Keepalived的主节点也为备节点,LB-02节点同样既为Keepalived的主节点也为备节点。

LB-01节点默认的主节点VIP(192.168.1.110),LB-02节点默认的主节点VIP(192.168.1.210)

1、配置 LB-01 节点

vim /etc/keepalived/keepalived.conf实战| Nginx+keepalived 实现高可用集群_Nginx+keepalived _13

2、配置 LB02 节点

vim /etc/keepalived/keepalived.conf

实战| Nginx+keepalived 实现高可用集群_Nginx+keepalived _14

3、重启Keepalived服务

4、查看VIP绑定情况

5、高可靠验证

实战| Nginx+keepalived 实现高可用集群_Nginx+keepalived _09

测试可以发现我们访问keepalived中配置的两个VIP都可以正常调度,当我们停止任意一台keepalived节点,同样还是正常访问;到此,nginx+keepalived+高可用集群(双主模式)就搭建完成了。

编写Nginx Web服务的守护脚本

以上实验测试有一个问题就是,我们是用Nginx做负载均衡分发请求的数据包的。如果主节点的Keepalived服务正常运行,而Nginx运行异常,那么将会出现Nginx负载均衡服务失灵,无法切换到Nginx负载均衡器02上,后端的Web服务器无法收到请求。所以,我们应该要检测Nginx的服务是否正常运行,如果不是正常运行,应该停掉Keepalived的服务,这样才能自动切换到备节点上。

我们可以通过检测80端口是否开启来判定Nginx的运行情况,2秒钟检测一次,脚本如下:

实战| Nginx+keepalived 实现高可用集群_Nginx+keepalived _16

  • 收藏
  • 评论
  • 举报

相关文章