阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Nginx+Keepalived实现双机热备高可用性

427次阅读
没有评论

共计 4033 个字符,预计需要花费 11 分钟才能阅读完成。

搭建准备:

机器两台 ip 分别为 192.168.100.128 192.168.100.129(可以用虚拟机测试,虚拟机网络模式为 NET 模式,且为静态 ip)

准备一个虚拟 ip 对外提供服务,即通过 ip 访问 web 程序。(keepalive 会将虚拟 ip 绑定到两台机器上)keepalived 的核心原理是 vrrp 协议,英文好可以查看最新协议 RFC3768。

1.nginx 安装
两台机器都需要安装,可以参考我的上篇博文 Linux tar 包安装 Nginx http://blog.csdn.net/caicongyang/article/details/46388845

2. 安装 keepalived(两台机器都要安装,并且都要做如下操作!)

下载最新版本的 keepalived-1.2.17.tar.gz 下载地址:http://www.keepalived.org/download.html

将文件上传到 /usr/local/ 目录下

#tar -zxvf keepalived-1.2.17.tar.gz

将解压出来的文件夹重命名

#mv keepalived-1.2.17 keeplived

进入文件夹,编译安装

#cd keepalived
#./configure
#make && make install

修改配置文件 /usr/local/keepalived/etc/keepalived/keepalived.conf

主机器配置文件如下:

global_defs {
notification_email {
linuxidc@qq.com              #接收警报的 email 地址, 可以添加多个
}
notification_email_from admin@caicongyang.com  ### 发件人地址
smtp_server 127.0.0.1          ### 发送邮件的服务器
smtp_connect_timeout 30      ### 超时时间
router_id LVS_DEVEL      ####load balancer 的标识 ID, 用于 email 警报
}
vrrp_script chk_http_port {
script“/opt/nginx_pid.sh”#### 检测 nginx 状态的脚本路径
interval 2
weight 2
}
vrrp_instance VI_1 {
state MASTER ############ 辅机为 BACKUP
interface eth0 ####HA 监测网络接口  此项默认为 eth0, 因为本人在虚拟机下做测试所以将其改为 eth2,可以用 ifconfing
virtual_router_id 51 #主、备机的 virtual_router_id 必须相同
mcast_src_ip 192.168.100.128 ### 本机 IP 地址
priority 100 ########### 权值要比 back 高
advert_int 1 #主备之间的通告间隔秒数
authentication {
auth_type PASS ### 默认配置 主备切换时的验证
auth_pass 1111
}
track_script {
chk_http_port ### 执行监控的服务
}
virtual_ipaddress {
192.168.100.133 #### 虚拟 ip,vip 的地址
}
}

backup 机器配置文件

global_defs {
notification_email {
linuxidc@qq.com              #接收警报的 email 地址, 可以添加多个
}
notification_email_from admin@caicongyang.com  ### 发件人地址
smtp_server 127.0.0.1          ### 发送邮件的服务器
smtp_connect_timeout 30      ### 超时时间
router_id LVS_DEVEL      ####load balancer 的标识 ID, 用于 email 警报
}
vrrp_script chk_http_port {
script“/opt/nginx_pid.sh”#### 检测 nginx 状态的脚本路径
interval 2
weight 2
}
vrrp_instance VI_1 {
state BACKUP ############ 辅机为 BACKUP
interface eth2 ####HA 监测网络接口 注意,此项默认为 eth0, 因为本人在虚拟机下做测试所以将其改为 eth2,可以先查看自己的网络端口
virtual_router_id 51 #主、备机的 virtual_router_id 必须相同
mcast_src_ip 192.168.100.129 ### 本机 IP 地址
priority 90 ########### 权值要比 back 高
advert_int 1 #主备之间的通告间隔秒数
authentication {
auth_type PASS ### 主备切换时的验证
auth_pass 1111
}
track_script {
chk_http_port ### 执行监控的服务
}
virtual_ipaddress {
192.168.100.133 #### 虚拟 ip,vip 的地址
}
}

将 keepalived 安装成 Linux 系统服务

#cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/

#cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

#mkdir /etc/keepalived

#cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/

#cp /usr/local/keepalived/sbin/keepalived /usr/sbin/

设置开机启动服务

# chkconfig –level 2345 keepalived on

在 /opt/ 下编写校验脚本,/opt/nginx_pid.sh(已配置在 keepalived.conf 中)

nginx_pid.sh:如果 nginx 停止运行,尝试启动,如果无法启动杀死本机 keepalived 进程,keepalied 将虚拟 ip 绑定到备用机器上

#!/bin/bash
A=`ps -C nginx –no-header |wc -l`
if [$A -eq 0];then
/usr/local/nginx/sbin/nginx ## 这个地方写你 nginx 启动命令的路径
sleep 3
if [`ps -C nginx –no-header |wc -l` -eq 0];then
killall keepalived
fi
fi

测试:

分别启动两台机器上 nginx 和 keepalived

利用命令查看虚拟 ip 是否绑定成功

#ip a

主机的结果是

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
      valid_lft forever preferred_lft forever
2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:ff:ca:24 brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.128/24 brd 192.168.100.255 scope global eth1
    <span style=”color:#ff6666;”>inet 192.168.100.133/32 scope global eth1</span>
    inet6 fe80::20c:29ff:feff:ca24/64 scope link
      valid_lft forever preferred_lft forever

可以看到 虚拟 IP 192.168.100.133 已经绑定到 128 的机器上了

另外可以利用杀死主服务的 nginx 进程,访问 192.168.100.133 是否依然能够访问 web 页面,再次利用 #ip a 命令查看备用机器虚拟 ip 是否绑定成功!

后记:双机热备模式虽然可用性高,但是有一台机器处于被分在状态,资源有点浪费。楼主将在下篇文章配置双机互为双主的模式。

CentOS 6.3 下 Haproxy+Keepalived+Apache 配置笔记 http://www.linuxidc.com/Linux/2013-06/85598.htm

Haproxy + KeepAlived 实现 WEB 群集 on CentOS 6 http://www.linuxidc.com/Linux/2012-03/55672.htm

Keepalived+Haproxy 配置高可用负载均衡 http://www.linuxidc.com/Linux/2012-03/56748.htm

Haproxy+Keepalived 构建高可用负载均衡 http://www.linuxidc.com/Linux/2012-03/55880.htm

CentOS 7 上配置 LVS + Keepalived + ipvsadm http://www.linuxidc.com/Linux/2014-11/109237.htm

Keepalived 高可用集群搭建 http://www.linuxidc.com/Linux/2014-09/106965.htm

Keepalived 的详细介绍:请点这里
Keepalived 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-06/118682.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计4033字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19348
评论数
4
阅读量
7816257
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

还在忍受动辄数百兆的“全家桶”监控软件?后台偷占资源、界面杂乱冗余,想查个 CPU 温度都要层层点选? 今天给...
星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛 NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手! 作为动漫爱好者,你是否还在为...
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...
小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比 星哥玩云,带你从小白到上云高手。今天咱们就来聊聊——什...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...
恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击 PHP-FPM(FastCGl Process M...
还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手! 前言 对于个人开发者、建站新手或是想搭建测试站点的从业者...
支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare 也瘫了连监控都挂,根因藏在哪? 最近两天的互联网堪称“故障...
手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板 前言 大家好,我是星哥。星哥发现很多新手刚接触服务器时,都会被“选购...