初识keepalived(三)——keepalived与nginx代理实现高可用

简介:

背景介绍

nginx除了可以作为web服务器外,同时也是一个反向代理软件,nginx不能完全取代apache,所以很多场景下nginx作为apache的反向代理服务器。nginx运行在用户空间,代替用户向服务器发起请求,请求返回时再经由nginx服务器返回给用户。不同于LVS的NAT模型,web服务器的网关不用必须指向nginx服务器,只要2者之间可以通信就可以,由于nginx作为代理服务器,所以支持端口转换。

网络拓扑

实验拓扑结构如下:

实验系统采用CentOS6.8,nginx采用1.12.1,所有设备连接在同一个虚拟交换机上,172.16.20.0/24网段模拟公网地址,172.16.10.0/24网段模拟内网地址。nginx服务器除配置内网地址外再安装keepalived服务,并创建2个vrrp实例,为vrrp实例配置公网地址实现keepalived双主模式高可用,同时对nginx服务进行健康检测,实现nginx反向代理高可用。用户通过修改host文件模拟域名绑定多个IP地址接收用户访问。

spacer.gif1.png

操作步骤

1.为web1和web2服务器安装httpd服务,默认端口改为8080,分别将主页面修改为RS1 Server和RS2 Server(略)

2.修改客户端host文件,设置www.abc.com的地址为172.16.20.100和172.16.20.200(略)

3.安装nginx软件,在配置文件中设置上游服务器地址和端口,将通过80端口接收到的请求全部转发至上游服务器

spacer.gif2.png

4.以nginx1服务器为例,在其上安装keepalived软件,创建2个vrrp实例并设置公网IP地址,实例1为主,实例2为备用。nginx2服务器上设置刚好相反,这样2个keepalived服务在实现双主模式的同时互为冗余,此时任何一个服务器keepalived服务掉线,另一个服务器都会添加该服务器的公网IP地址。此时虽然keepalived服务实现了多个公网IP地址的高可用但又会引入一个新的问题:如果一台nginx服务器上的keepalived服务正常,nginx服务没有启动或者意外中止,这台nginx服务器依然会保留公网IP地址,而通过此公网IP进来的用户则由于nginx服务的掉线无法正常访问到后端的apche服务器。针对此问题引入了红框中的nginx服务健康检测脚本,并在实例中进行调用

spacer.gifspacer.gif3.png33.png

5.当一个进程启动时,会在指定位置生成一个pid文件,该文件会随着进程的终止而消失。检测脚本就是利用该特性,当pid文件不存在时vrrp实例的权重-20,这样当一个服务器的nginx服务停止或未启动时,另一个服务器都会添加该服务器的公网IP地址,从而避开nginx掉线的服务器

spacer.gif4.png

结果验证

经测试,此时任何一台代理服务器上的keepalived服务或者nginx服务掉线后,另一台服务器都会接管该服务器的公网IP地址,从而实现keepalived和nginx的高可用。

补充说明

此方案中还有一个疑问:web服务器是否实现冗余,尽管nginx服务实现了高可用,如果web服务器宕机,nginx的upstream中是否会检测到掉线的web服务器并在调度用户请求时避开掉线的web服务器。经测试可以避开掉线的服务器,但无法通过upstream本身显示上游服务器健康状态



本文转自 qiao645 51CTO博客,原文链接:http://blog.51cto.com/arkling/2044272

相关文章
|
3月前
|
负载均衡 应用服务中间件 Linux
高可用系列文章之三 - NGINX 高可用实施方案
高可用系列文章之三 - NGINX 高可用实施方案
|
1月前
|
运维 应用服务中间件 Linux
keepalived详解(三)——keepalived与Nginx配合实战
keepalived详解(三)——keepalived与Nginx配合实战
30 1
|
1天前
|
存储 运维 负载均衡
Heartbeat+Nginx实现高可用集群
通过Heartbeat与Nginx的结合,您可以建立一个高可用性的负载均衡集群,确保在服务器故障时仍能提供无中断的服务。这种配置需要仔细的计划和测试,以确保系统在故障情况下能够正确运行。
9 2
|
11天前
|
负载均衡 网络协议 应用服务中间件
【亮剑】在Linux中构建高可用性和高性能网络服务的负载均衡工具HAProxy、Nginx和Keepalived。
【4月更文挑战第30天】本文介绍了在Linux中构建高可用性和高性能网络服务的负载均衡工具HAProxy、Nginx和Keepalived。HAProxy是一个高性能的开源TCP和HTTP负载均衡器,适合处理大量并发连接;Nginx是一个多功能Web服务器和反向代理,支持HTTP、HTTPS和TCP负载均衡,同时提供缓存和SSL功能;Keepalived用于监控和故障切换,通过VRRP实现IP热备份,保证服务连续性。文中详细阐述了如何配置这三个工具实现负载均衡,包括安装、配置文件修改和启动服务,为构建可靠的负载均衡系统提供了指导。
|
16天前
|
JSON JavaScript 前端开发
vue2_vite.config.js的proxy跨域配置和nginx配置代理有啥区别?
vue2_vite.config.js的proxy跨域配置和nginx配置代理有啥区别?
32 1
|
27天前
|
Kubernetes 搜索推荐 应用服务中间件
通过keepalived+nginx实现 k8s apiserver节点高可用
通过keepalived+nginx实现 k8s apiserver节点高可用
39 16
|
2月前
|
数据可视化 应用服务中间件 网络安全
简单易用的Nginx代理管理工具:体验便捷配置、高效管理
Nginx Proxy Manager是一款强大的代理服务器管理工具,提供简单直观的界面来配置和管理Nginx代理服务器,帮助用户轻松提升配置的简洁性和便捷性。
72 0
简单易用的Nginx代理管理工具:体验便捷配置、高效管理
|
2月前
|
NoSQL 关系型数据库 MySQL
Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
251 0
|
4月前
Nginx---代理遇到的坑
Nginx---代理遇到的坑
19 1
|
5月前
|
负载均衡 前端开发 应用服务中间件
NGINX高可用之keepalived+nginx主从模式+主主模式配置实践
NGINX高可用之keepalived+nginx主从模式+主主模式配置实践
159 1