keepalived双机热备nginx怎么配置(keepalived双机热备)

keepalived双机热备nginx怎么配置(keepalived双机热备)

浏览次数:
信息来源: 用户投稿
更新日期: 2026-09-03
文章简介

环境准备:2台centos:192.168.0.105和192.168.0.118,虚拟ip(vip)为192.168.0.119配置keepavlived分别在105和118上安装ke

2025阿里云双十一服务器活动

环境准备:

  2台centos:192.168.0.105和192.168.0.118,虚拟ip(vip)为192.168.0.119

配置keepavlived

  分别在105和118上安装keepalived

yuminstallkeepalived

  准备心跳角本

  keepalived的配置相当灵活,可以定时执行角本命令,用于心跳检查,比如,我们访问nginx发现nginx不可访问时,就关闭keepalived,从而切换到从nginx来实现不间断的服务支持。

vi/etc/keepalived/keepalived.conf

check_code=$(curl--connect-timeout3-sl-w"%{http_code}

"http://localhost:81-o/dev/null)

if["$check_code"!="200"];then

fi

  这段角本的意思就是说每次的心跳检查会执行一个for循环,访问,在for的2次循环中如果返回的状态都不是200就会关闭keepalived。这个角本在105和118两台机器上都要准备好。

  设置118机器上的keepalived为主节点,105机器上的keepalived为从节点,它们两个的配置文件差不太多

vi/etc/keepalived/keepalived.conf

  118机器keepalived的配置文件

!configurationfileforkeepalived

script"/etc/keepalived/check_nginx.sh"#心跳检测角本

interval2#脚本执行间隔,每2s检测一次

weight-5#脚本结果导致的优先级变更,检测失败(脚本返回非0)则优先级-5

fall3#检测连续2次失败才算确定是真失败。会用weight减少优先级(1-255之间)

rise2#检测1次成功就算成功。但不修改优先级

statemaster#指定keepalived的角色,master表示此主机是主服务器,backup表示此主机是备用服务器

interfaceeth0#指定监测网络的接口。实例绑定的网卡,因为在配置虚拟ip的时候必须是在已有的网卡上添加的

mcast_src_ip192.168.0.118发送多播数据包时的源ip地址

virtual_router_id51#虚拟路由标识,master和backup必须是一致的

priority100#定义优先级,数字越大,优先级越高

advert_int2#设定master与backup负载均衡器之间同步检查的时间间隔,单位是秒

authentication{#设置验证类型和密码。主从必须一样

auth_typepass#设置vrrp验证类型,主要有pass和ah两种

auth_pass1111#设置vrrp验证密码,在同一个vrrp_instance下,master与backup必须使用相同的密码才能正常通信

192.168.0.119#vrrp虚拟地址如果有多个vip,换行填写

chk_nginx#心跳脚本,即在vrrp_script部分指定的名字

}

115机器上的角本对上面的角本稍做变动即可

改变statemaster->statebackup,priority100->priority90,mcast_src_ip192.168.0.118->mcast_src_ip192.168.0.105。其他的地方保持不变,是不是很简单。

keepalived双机热备nginx怎么配置,keepalived双机热备

script"/etc/keepalived/check_nginx.sh"

mcast_src_ip192.168.0.105#修改为本机ip

}

到这里keepalived的简单配置就完成了下面就启动keepalived

servicekeepalivedstart

安装nginx

查看nginx的依赖库是否完整

rpm-qagcc

如果没有就安装

yum-yinstallgcczlibzlib-developensslopenssl-develpcre-devel

下载并解压nginx

cdnginxsrc/

wgethttp://nginx.org/download/nginx-1.13.9.tar.gz

tarzxvfnginx-1.13.9.tar.gz

cdnginx-1.13.9/

make&&makeinstall

执行成功后会显示leavingdirectory

/usr/local/nginx/sbin/nginx

检查

psaux|grepnginx

开机启动

vi/etc/rc.local

添加一行

/usr/local/nginx/sbin/nginx

因为我的机器上80端口被别的应用占用了,所以就修改105和118的nginx.conf把端口80修改为81

vi/usr/local/nginx/conf/nginx.conf

分别个性105和119上的index.html加上一个ip以便们们识别打开的是哪个ip上的index.html

vi/usr/local/nginx/html/index.html

nginx重新加载配置

/usr/local/nginx/sbin/nginx-sreload

好了,我们访问一下

curl192.168.0.119:81

返回的html是118机器上的index.html

/usr/local/nginx/sbin/nginx-sstop

这时118上的keepalived的心跳检查角本发现nginx无法访问会把keepalived关闭,然后转向从节点

curl192.168.0.119:81

在118上重新启动nginx和keepalived

再访问119返回的网址是118上的index.html

以上就是keepalived双机热备nginx怎么配置的详细内容,更多请关注主机测评网其它相关文章!

标签:
长沙网站建设(长沙市网站制作)
« 上一篇
返回列表
下一篇 »

如本文对您有帮助,就请抽根烟吧!