Nginx双机热备方案

不管现实多么惨不忍睹,都要持之以恒地相信,这只是黎明前短暂的黑暗而已。不要惶恐眼前的难关迈不过去,不要担心此刻的付出没有回报,别再花时间等待天降好运。真诚做人,努力做事!你想要的,岁月都会给你。Nginx双机热备方案,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

Nginx双机热备方案

前言

提示:这里可以添加本文要记录的大概内容:

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。

—在生产环境上很多时候是以 Nginx 做反向代理对外提供服务,但是一天Nginx难免遇见故障,如:服务器宕机。当 Nginx 宕机那么 所有对外提供的接口都将导致无法访问。虽然我们无法保证服 务器百分之百可用,但是也得想办法避免这种悲剧,今天我们 使用 keepalived 来实现 Nginx 的高可用。

双机热备方案

提示:以下是本篇文章正文内容,下面案例可供参考

一、双机热备方案是什么?

实现步骤:这种方案是国内企业中最为普遍的一种高可用方案,双机热备其实 就是指一台服务器在提供服务,另一台为某服务的备用状态,当一 台服务器不可用另外一台就会顶替上去。 本文我们通过keepalived来实现双机热备。keepalived是基于VRRP协议实现的保证集群高可用的一个服务软 件,主要功能是实现真机的故障隔离和负载均衡器间的失败切换, 防止单点故障。

二、使用步骤

1.环境准备

准备两台Nginx主机,主Nginx的ip为192.168.66.100,备Nginx的服务器ip为192.168.66.101.还有一个Lvs虚拟VIP(这个不需要特别准备,在配置文件写上就可,但主备Nginx服务器需要特别准备),Lvs虚拟Vip为192.168.66.99.

2.具体操作

  1. 在两台虚拟机上分别执行以下命令,安装keepalived
yum install -y keepalived
  1. 现在对主Nginx进行操作,修改keepalived.conf文件,直接把文件中原有的内容删除,粘贴并修改以下内容。其中主备Nginx的virtual_router_id必须一样,可以直接用代码里的,不用修改,mcast_src_ip必须为Nginx宿主机的ip地址(如主Nginx的为192.168.66.100),virtual_ipaddress为Lvs虚拟Vip192.168.66.99
! Configuration File for keepalived


vrrp_script chk_nginx {
   script "/etc/keepalived/nginx_check.sh" #运行脚本,脚本内容下面有,就是起到一个nginx宕机以后,自动开启服务
   interval 2 #检测时间间隔
   weight -20 #如果条件成立的话,则权重 -20
}
# 定义虚拟路由,VI_1 为虚拟路由的标示符,自己定义名称
vrrp_instance VI_1 {
   state MASTER #来决定主从
   interface ens33 # 绑定虚拟 IP 的网络接口,根据自己的机器填写
   virtual_router_id 121 # 虚拟路由的 ID 号, 两个节点设置必须一样
   mcast_src_ip 192.168.66.100 #填写本机ip
   priority 100 # 节点优先级,主要比从节点优先级高
   nopreempt # 优先级高的设置 nopreempt 解决异常恢复后再次抢占的问题
   advert_int 1 # 组播信息发送间隔,两个节点设置必须一样,默认 1s
   authentication {
     auth_type PASS
     auth_pass 1111
   }
   # 将 track_script 块加入 instance 配置块
   track_script {
     chk_nginx #执行 Nginx 监控的服务
   }


   virtual_ipaddress {
     192.168.212.110 # 虚拟ip,也就是解决写死程序的ip怎么能切换的ip,也可扩展,用途广泛。可配置多个。
   }
}

  1. 现在对从Nginx进行操作,修改keepalived.conf文件,直接把文件中原有的内容删除,粘贴并修改以下内容。其中主备Nginx的virtual_router_id必须一样,可以直接用代码里的,不用修改,mcast_src_ip必须为Nginx宿主机的ip地址(如主Nginx的为192.168.66.101),virtual_ipaddress为Lvs虚拟Vip192.168.66.99
! Configuration File for keepalived


vrrp_script chk_nginx {
   script "/etc/keepalived/nginx_check.sh" #运行脚本,脚本内容下面有,就是起到一个nginx宕机以后,自动开启服务
   interval 2 #检测时间间隔
   weight -20 #如果条件成立的话,则权重 -20
}
# 定义虚拟路由,VI_1 为虚拟路由的标示符,自己定义名称
vrrp_instance VI_1 {
   state BACKUP #来决定主从
   interface ens33 # 绑定虚拟 IP 的网络接口,根据自己的机器填写
   virtual_router_id 121 # 虚拟路由的 ID 号, 两个节点设置必须一样
   mcast_src_ip 192.168.66.100 #填写本机ip
   priority 100 # 节点优先级,主要比从节点优先级高
   nopreempt # 优先级高的设置 nopreempt 解决异常恢复后再次抢占的问题
   advert_int 1 # 组播信息发送间隔,两个节点设置必须一样,默认 1s
   authentication {
     auth_type PASS
     auth_pass 1111
   }
   # 将 track_script 块加入 instance 配置块
   track_script {
     chk_nginx #执行 Nginx 监控的服务
   }


   virtual_ipaddress {
     192.168.66.99 # 虚拟ip,也就是解决写死程序的ip怎么能切换的ip,也可扩展,用途广泛。可配置多个。
   }
}

  1. Nginx+keepalived实现高可用
    写入nginx_check.sh脚本 /etc/keepalived/nginx_check.sh.输入命令
vim /etc/keepalived/nginx_check.sh
#!/bin/bash
A=`ps -C nginx –no-header |wc -l`
if [ $A -eq 0 ];then
   /usr/local/nginx/sbin/nginx
   sleep 2
   if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
     killall keepalived
   fi
fi

cd /etc/keepalived
chmod 777 nginx_check.sh
  1. 运行keepalived和Nginx
    这里给出运行和停止keepalived的命令,Nginx大家自行运行
service keepalived start #启动keepalived
service keepalived stop #停止keepalived

如果在启动keepalived的时候报错:
Nginx双机热备方案

当你在浏览器输入192.168.66.99的时候,打开的是nginx的页面或者服务,就说明双机热备就成功了

总结

提示:这里对文章进行总结:

例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/188992.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!