凝思6.0.80下基于nginx和keepalived的主备机服务切换方案

2024-03-20 18:59

本文主要是介绍凝思6.0.80下基于nginx和keepalived的主备机服务切换方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、需求

现场两台服务器,均可做为网页服务器,网页登录地址分别为http://192.168.0.100:8080和http://192.168.0.101:8080。现要求正常时连接其中一台服务器,当连接的服务器出现异常或网络连接中断时,可以自动切换连接到另一台服务器,即实现服务器的主备服务切换功能。

2、分析

根据对上述需求的分析,可以得出一个服务切换的方案,具体方法是两台服务器均可生成一个共同IP地址,如:192.168.0.10,正常情况下只在一台服务器上生成,当正常服务器异常时,可在另一台服务器上生成。浏览器只需要登录http://192.168.0.10即可访问网页。

为了实现分析后方案,需要一个网页代理服务和一个主备机IP地址切换服务,也就是我们要用到的nignx和keepalived。

3、安装服务

在凝思6.0.80系统环境下,需要安装libnl、nginx、keepalived三个安装包。libnl是keepalived的依赖包,在凝思系统下安装不完全,需要补充安装。

两台服务器均需安装以下内容。

3.1 安装nignx

  1. 在http://nginx.org/en/download.html下载安装包nginx-1.19.7.tar.gz
  2. 拖入凝思
  3. 切换至root用户
  4. 解压 tar zxvf nginx-1.19.7.tar.gz
  5. ./configure
  6. make && make install

经过上述操作,nignx安装完毕。安装目标在 /usr/local/nignx中,在/etc/rc.local中添加/usr/local/nginx/sbin/nignx,完成启机自启动nginx功能

3.2 安装libnl

  1. 在http://www.linuxfromscratch.org/blfs/view/svn/basicnet/libnl.html下载libnl-3.5.0.tar.gz
  2. 拖入凝思
  3. 切换至root用户
  4. 解压 tar zxvf libnl-3.5.0.tar.gz
  5. ./configure
  6. make && make install

经过上述操作,libnl安装完毕,安装目标在/usr/local/lib中

 

在/etc/ld.so.conf中添加/usr/local/lib

3.3 安装keepalived

  1. 在https://www.keepalived.org/download.html下载keepalived-2.2.1.tar.gz
  2. 拖入凝思
  3. 切换至root用户
  4. 解压 keepalived-2.2.1.tar.gz
  5. 添加自启动功能 cp keepalived-2.2.1/keepalived/etc/init.d/keepalived /etc/init.d
  6. ln -s /lib/x86_64-linux-gnu/libnl-genl-3.so.200 /lib/x86_64-linux-gnu/libnl-genl-3.so
  7. ./configure --prefix=/usr/local/keepalived
  8. make && make install

经过上述操作,keepalived安装完毕,安装目标在/usr/local/keepalived中。

  1. mkdir -p /etc/keepalived
  2. cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived

使用/etc/init.d/keepalived start 启动,在测试中keepalived会有些问题,这里大家自己去解决下,当试题了。

4、配置

4.1 双机nignx配置

http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;#代理websocket必填内容map $http_upgrade $connection_upgrade {default upgrade;'' close;}upstream websocket {server localhost:8080;}server {listen 80;server_name 0.0.0.0;location / {proxy_pass http://192.168.1.16:8080;#代理websocket必填内容proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection $connection_upgrade;}}
}

4.2 主机keepalived配置

vrrp_script chk_http_port {script "/opt/chk_nginx.sh"interval 2weight -5fall 2rise 1
}#第一个网址虚拟共享IP
vrrp_instance VI_1 {state MASTERinterface eth0mcast_src_ip 192.168.1.102virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.1.16}track_script {#检查nignx是否启动chk_http_port}
}#第二个网址虚拟共享IP
vrrp_instance VI_2 {state MASTERinterface eth1mcast_src_ip 172.22.0.22virtual_router_id 52priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {172.22.0.16}
}

4.3 备机keepalived配置

vrrp_script chk_http_port {script "/opt/chk_nginx.sh"interval 2weight -5fall 2rise 1
}#第一个网址虚拟共享IP
vrrp_instance VI_1 {state BACKUPinterface eth0mcast_src_ip 192.168.1.101virtual_router_id 51priority 99advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.1.16}track_script {#检查nignx是否启动chk_http_port}
}#第二个网址虚拟共享IP
vrrp_instance VI_2 {state BACKUPinterface eth1mcast_src_ip 172.22.0.21virtual_router_id 52priority 99advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {172.22.0.16}
}

主机和备机的keepalived区别之处大家自己去比对吧。

5、结束

双机正常启动服务后,可以用ip ad指令看到虚拟IP地址在主机上,如果主机关机或keepalived服务关闭,虚拟IP会在备机中出现,直到主机恢复正常后虚拟IP会切回主机。

这篇关于凝思6.0.80下基于nginx和keepalived的主备机服务切换方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/830439

相关文章

史上最全nginx详细参数配置

《史上最全nginx详细参数配置》Nginx是一个轻量级高性能的HTTP和反向代理服务器,同时也是一个通用代理服务器(TCP/UDP/IMAP/POP3/SMTP),最初由俄罗斯人IgorSyso... 目录基本命令默认配置搭建站点根据文件类型设置过期时间禁止文件缓存防盗链静态文件压缩指定定错误页面跨域问题

nginx负载均衡及详细配置方法

《nginx负载均衡及详细配置方法》Nginx作为一种高效的Web服务器和反向代理服务器,广泛应用于网站的负载均衡中,:本文主要介绍nginx负载均衡及详细配置,需要的朋友可以参考下... 目录一、 nginx负载均衡策略1.1 基本负载均衡策略1.2 第三方策略1.3 策略对比二、 nginx配置2.1

电脑找不到mfc90u.dll文件怎么办? 系统报错mfc90u.dll丢失修复的5种方案

《电脑找不到mfc90u.dll文件怎么办?系统报错mfc90u.dll丢失修复的5种方案》在我们日常使用电脑的过程中,可能会遇到一些软件或系统错误,其中之一就是mfc90u.dll丢失,那么,mf... 在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包

电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案

《电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案》最近有不少兄弟反映,电脑突然弹出“mfc100u.dll已加载,但找不到入口点”的错误提示,导致一些程序无法正... 在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是“找不到指定的模块”或“缺少某个DL

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

Java Response返回值的最佳处理方案

《JavaResponse返回值的最佳处理方案》在开发Web应用程序时,我们经常需要通过HTTP请求从服务器获取响应数据,这些数据可以是JSON、XML、甚至是文件,本篇文章将详细解析Java中处理... 目录摘要概述核心问题:关键技术点:源码解析示例 1:使用HttpURLConnection获取Resp

Nginx location匹配模式与规则详解

《Nginxlocation匹配模式与规则详解》:本文主要介绍Nginxlocation匹配模式与规则,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、环境二、匹配模式1. 精准模式2. 前缀模式(不继续匹配正则)3. 前缀模式(继续匹配正则)4. 正则模式(大

springboot项目如何开启https服务

《springboot项目如何开启https服务》:本文主要介绍springboot项目如何开启https服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录springboot项目开启https服务1. 生成SSL证书密钥库使用keytool生成自签名证书将

Java实现优雅日期处理的方案详解

《Java实现优雅日期处理的方案详解》在我们的日常工作中,需要经常处理各种格式,各种类似的的日期或者时间,下面我们就来看看如何使用java处理这样的日期问题吧,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言一、日期的坑1.1 日期格式化陷阱1.2 时区转换二、优雅方案的进阶之路2.1 线程安全重构2

springboot上传zip包并解压至服务器nginx目录方式

《springboot上传zip包并解压至服务器nginx目录方式》:本文主要介绍springboot上传zip包并解压至服务器nginx目录方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录springboot上传zip包并解压至服务器nginx目录1.首先需要引入zip相关jar包2.然