使用Nginx免费版与Keepalived实现高可用性High Availablity方案

简介: 本文介绍了如何使用Nginx免费版与Keepalived实现高可用性(HA)方案,涵盖环境搭建、Keepalived安装配置、版本升级及主从模式设置。通过虚拟机测试,结合CentOS与宝塔,详细说明VIP配置与服务启动流程,助你构建稳定可靠的Web高可用架构。

使用Nginx免费版与Keepalived实现高可用性High Availablity方案

我们可以首先参考一下
CNBlog - Kevingrace
在实际上,我是用RedHat Article 2来做的。
有一些需要首先配置好的要求可以看看Keepalived的文档
https://www.keepalived.org/doc/installing_keepalived.html

他还有另外两篇文章,可以稍微看一下,但是用处不是特别大。
RedHat Article 1
RedHat Article 3

我测试的时候使用的是虚拟机上做的CentOS和宝塔,本身带有keepalive 1.3版本(2017)
建议放网站的时候区分一下Server 1和Server 2的内容方便你直观的看出。
其次是记得通过修改hosts文件达到访问宝塔内网站的目的。

因为采用

yum install -y keepalived

也是一个老的版本,所以我们应该是要下载最新版本的。
Keepalived官网下载
在测试的时候,可以先确保老版本测试时OK的,
我测试过老版本的主从模式,防火墙没有做任何配置,确实可用。

更新Keepalived

wget https://www.keepalived.org/software/keepalived-2.0.20.tar.gz
OR
wget https://github.com/acassen/keepalived/archive/v2.0.20.tar.gz
#采用这个方式下载速度非常慢,建议先下载,如果本身电脑配置了IIS的话,
#可以将下载文件放到网站文件夹里,然后直接
wget http://192.168.2.1/keepalived-2.0.20.tar.gz

#直接下载并解压
curl --progress http://192.168.2.1/keepalived-2.0.20.tar.gz | tar xz

我们可以通过

which keepalived

return [root@localhost ~]$/usr/sbin/keepalived
#或者从
whereis -l keepalived

查看得知,目前的keepalived的执行包是安装在/usr/sbin/下。而其他文件按照linux的方式分布在/usr/local的/bin;/sbin;/etc等位置。
如果采用默认的./configure 是不会安装到这个位置的。
所以我们需要做

./configure --prefix=/usr/local/

不要安装到/usr/local/keepalived,这是为了新建不同版本keepalived才需要这么做的,比如/usr/local/keepalived-2.0.20。另外一个原因是我们目前keepalived旧版本安装位置是/usr/local/
你也可以先卸载keepalived之后安装到/usr/local/keepalived。

sudo yum remove keepalived

跟着教程做完make / sudo make install (不建议使用sudo make && make install)

运行前准备

当我尝试使用systemctl enable keepalived以及systemctl start keepalived发现
Can't open PID file /run/keepalived.pid (yet?) after start...tory
这是因为我们其实需要在安装完成后,将安装好的文件夹复制到特定位置

# 拷贝执行文件 将我们刚刚config好的文件复制(覆盖)到usr/sbin里
cp /usr/local/sbin/keepalived /usr/sbin/

# 将keepalived配置文件拷贝到etc下
sudo cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/

# 原文 - 将初始化脚本拷贝到系统初始化目录下
# sudo cp /home/centos/keepalived-2.0.20/keepalived/etc/init.d/keepalived /etc/init.d/

将初始化脚本拷贝到系统初始化目录下(官网)
ln -s /etc/rc.d/init.d/keepalived.init /etc/rc.d/rc3.d/S99keepalived


#====================新版本不需要========================#
# 创建keepalived文件夹
mkdir /etc/keepalived/

# 将keepalived配置文件拷贝到etc下
cp /usr/local/keepalived-2.0.10/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
#====================新版本不需要========================#

# 添加可执行权限
chmod +x /etc/init.d/keepalived

然后可以

keepalived --version

查看版本

运行

systemctl start keepalived
systemctl status keepalived
systemctl stop keepalived
systemctl reload-daemon

##自启动
systemctl enable keepalived

最后

通过
ip -brief address show
查看Server2 VIP是否存在。
一般的,这个时候网站已经完成Nginx-Keepalived 主从模式设置。
主主模式其实只是在配置上添加多类似的VRRP Instance配置即可。

没怎么看的参考资料

  1. Active-Passtive https://www.cnblogs.com/kevingrace/p/6138185.html
  2. Active-Active https://www.cnblogs.com/kevingrace/p/6146031.html
  3. https://docs.nginx.com/nginx/admin-guide/high-availability/ha-keepalived-nodes/
  4. https://devops.ionos.com/tutorials/configuring-a-high-availability-nginx-plus-pair/
  5. https://blog.csdn.net/l1028386804/article/details/52577875
  6. https://www.centlinux.com/2018/08/keepalived-configure-floating-ip-centos-7.html
  7. https://www.digitalocean.com/community/tutorials/how-to-set-up-highly-available-web-servers-with-keepalived-and-floating-ips-on-ubuntu-14-04
  8. https://tecadmin.net/setup-ip-failover-on-ubuntu-with-keepalived/
相关文章
|
监控 物联网 应用服务中间件
流媒体方案之Nginx——实现物联网视频监控项目
流媒体方案之Nginx——实现物联网视频监控项目
流媒体方案之Nginx——实现物联网视频监控项目
|
运维 应用服务中间件 Linux
keepalived详解(三)——keepalived与Nginx配合实战
keepalived详解(三)——keepalived与Nginx配合实战
515 1
|
5月前
|
JSON 前端开发 应用服务中间件
配置Nginx根据IP地址进行流量限制以及返回JSON格式数据的方案
最后,记得在任何生产环境部署之前,进行透彻测试以确保一切运转如预期。遵循这些战术,守卫你的网络城堡不再是难题。
249 3
|
6月前
|
负载均衡 前端开发 JavaScript
LVS-DR模式、keepalived、Nginx与Tomcat合作,打造动静分离,高效负载均衡与高可用性
为了采用这样的架构,你需要对LVS-DR、Keepalived、Nginx与Tomcat有一定的理解和掌握,同时也需要投入一些时间去研究和配置,但是一旦你把它运行起来,你将会发现,这一切都是值得的。
261 11
|
Java 应用服务中间件 Shell
Nginx+Keepalived+Tomcat 实现Web高可用集群
Nginx+Keepalived+Tomcat 实现Web高可用集群
370 0
|
运维 负载均衡 监控
Nginx加Keepalived实现高可用
使用Nginx和Keepalived来实现高可用性的方案,对于确保关键服务的稳定性和可靠性来说是非常有效的。此配置涉及多个步骤,包括各个服务的安装、设置及测试,目标是在主服务器故障时能无缝切换,以确保服务的持续可用。正确的配置和充分的测试是实现高可用性的保证,这也要求管理员对这些工具和它们背后的原理有深入的了解。
470 1
|
消息中间件 负载均衡 应用服务中间件
高并发环境下的Nginx整合方案
【8月更文挑战第20天】在高并发环境下,整合Nginx代理服务器、静态文件服务器、Tomcat集群、Mycat数据库读写分离和消息队列,可以构建一个强大、灵活且可扩展的Web服务架构。
206 1
|
Kubernetes 搜索推荐 应用服务中间件
通过keepalived+nginx实现 k8s apiserver节点高可用
通过keepalived+nginx实现 k8s apiserver节点高可用
1663 17
|
负载均衡 网络协议 应用服务中间件
【亮剑】在Linux中构建高可用性和高性能网络服务的负载均衡工具HAProxy、Nginx和Keepalived。
【4月更文挑战第30天】本文介绍了在Linux中构建高可用性和高性能网络服务的负载均衡工具HAProxy、Nginx和Keepalived。HAProxy是一个高性能的开源TCP和HTTP负载均衡器,适合处理大量并发连接;Nginx是一个多功能Web服务器和反向代理,支持HTTP、HTTPS和TCP负载均衡,同时提供缓存和SSL功能;Keepalived用于监控和故障切换,通过VRRP实现IP热备份,保证服务连续性。文中详细阐述了如何配置这三个工具实现负载均衡,包括安装、配置文件修改和启动服务,为构建可靠的负载均衡系统提供了指导。
350 0
|
前端开发 Java 应用服务中间件
Springboot解决跨域问题方案总结(包括Nginx,Gateway网关等)
Springboot解决跨域问题方案总结(包括Nginx,Gateway网关等)