千家信息网

Centos7 keepalived +nginx

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,官网下载:keepalived-2.0.12.tarnginx-1.14.2.tar主机A:192.168.0.110/24主机B:192.168.0.120/24VRRP:192.168.0.200
千家信息网最后更新 2026年11月03日Centos7 keepalived +nginx

官网下载:
keepalived-2.0.12.tar
nginx-1.14.2.tar

主机A:192.168.0.110/24
主机B:192.168.0.120/24

VRRP:192.168.0.200/24

用winscp把文件上传到 /usr/local/
cd /usr/local/
安装keepalived:
(2)# cd /usr/local/
(3)# tar -zxvf keepalived-2.0.12.tar.gz
(4)# cd keepalived-2.0.12
(5)# ./configure --prefix=/usr/local/keepalived
(6)# make && make install

[root@localhost local]# tar -zxvf keepalived-2.0.12.tar.gz 

安装路径:/usr/local/keepalived

[root@localhost keepalived-2.0.12]# ./configure --prefix=/usr/local/keepalived
[root@localhost keepalived-2.0.12]# make && make install

如果是新的系统安装是需要安装依赖包,可以挂载光盘用本地yum安装。

[root@localhost keepalived-2.0.12]# mkdir /mnt/cdrom[root@localhost keepalived-2.0.12]# mount /dev/cdrom /mnt/cdrom/mount: /dev/sr0 is write-protected, mounting read-only cd /etc/yum.repos.d/ cp CentOS-Base.repo CentOS-Base.repo.bak  vi CentOS-Base.repo


保存

[root@localhost yum.repos.d]# yum repolist

报错1:

一次解决依赖包问题

[root@localhost yum.repos.d]# yum -y install openssl-devel gcc libnl-devel
[root@localhost keepalived-2.0.12]# yum -y install gcc   解决 

报错2:

[root@localhost keepalived-2.0.12]# yum -y install openssl-devel  解决

报错3:

[root@localhost keepalived-2.0.12]# yum -y install libnl-devel  解决

再次执行

./configure --prefix=/usr/local/keepalived  && make && make install    安装成为

没有任何错误出现

将keepalived添加到系统服务中

# 拷贝执行文件cp /usr/local/keepalived/sbin/keepalived /usr/sbin/# 将初始化脚本拷贝到系统初始化目录下cp /usr/local/keepalived-2.0.10/keepalived/etc/init.d/keepalived /etc/init.d/# 将keepalived配置文件拷贝到etc下cp /usr/local/keepalived-2.0.10/keepalived/etc/sysconfig/keepalived /etc/sysconfig/# 创建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到开机启动chkconfig --add keepalivedchkconfig keepalived on

此时已加入系统服务 可使用services 启动

#启动service keepalived start#停止service keepalived stop#重启service keepalived restart#查看启动情况ps -aux |grep keepalived

修改刚添加到系统的配置文件:vi /etc/keepalived/keepalived.conf
找到虚拟路由节点 vrrp_instance(Virtual Router Redundancy Protocol)

global_defs {   notification_email {     acassen@firewall.loc     failover@firewall.loc     sysadmin@firewall.loc   }   notification_email_from Alexandre.Cassen@firewall.loc   smtp_server 192.168.200.1   smtp_connect_timeout 30   router_id LVS_DEVEL01    //router_id   不能想同   vrrp_skip_check_adv_addr   vrrp_strict   vrrp_garp_interval 0   vrrp_gna_interval 0}vrrp_instance VI_1 {    state MASTER          //MASTER主节点,备用节点上设置为state BACKUP    interface ens32        //绑定虚拟机IP的网卡  两个节点设置一样 根据 ipaddr换成对应的网卡地址    virtual_router_id 51  //VRRP组名,主副节点设置必须一样,指名各个节点属于同一个VRRP组,同一个组的节点互相抢IP    priority 100         //优先级(1~254之间),备用节点必须比主节点优先级低    advert_int 1         //组播信息发送间隔,两个节点设置必须一样    authentication {    //设置验证信息, 两个节点设置必须一样,用于节点间信息转发时的加密        auth_type PASS        auth_pass 1111    }    virtual_ipaddress {  // 虚拟IP两个节点设置必须一样,两节点同时抢一个io        192.168.0.200/24  // 如果两个nginx的ip分别是192.168.0.110,.120,则此处的虚拟ip跟它俩同一个网段即可 24代表3个255的子网掩码    }}

如果要 ping 192.168.0.200 还需要注释掉配置文件中的# vrrp_strict

-----*****---
主备都抢到了虚拟ip

挂载了光盘可以直接安装 tcpdump

 yum -y install tcpdump

采用 tcpdump 抓包定位问题,以下是在192.168.0.110 主节点的抓包结果
tcpdump -i ens32 vrrp -n

由上图可以看到,192.168.93.140和192.168.93.141两个IP在轮流发送组播信号。而正常的应该是由MASTER服务器发送组播,如果BACKUP收不到MASTER的组播信号了,那么判定MASTER宕机了,BACKUP就会接手VIP

问题就是出现在了防火墙这里,防火墙阻止了vrrp组包发送

如果是Firewalld防火墙 则主、备都运行下面的命令

[root@localhost etc]# firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface ens32 --destination 224.0.0.18 --protocol vrrp -j ACCEPTsuccess或者[root@localhost etc]# firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface  ens32 --protocol vrrp -j ACCEPTsuccess[root@localhost etc]# firewall-cmd --reloadsuccess[root@localhost etc]# 

如果添加了没有正常重启下服务器

重启后正常.
服务器A:

服务器B:

至此Keepalived 安装完成。


安装 Nginx
安装所需环境
Nginx 是 C语言 开发,建议在 Linux 上运行,当然,也可以安装 Windows 版本,本篇则使用 CentOS 7 作为安装环境。

一. gcc 安装
安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:

yum install gcc-c++
二. PCRE pcre-devel 安装
PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:

yum install -y pcre pcre-devel
三. zlib 安装
zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。

yum install -y zlib zlib-devel
四. OpenSSL 安装
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。

yum install -y openssl openssl-devel

不过在安装keepalived 时都安装 了这些依赖包了,下面直接安装 就 行了.

[root@localhost ~]# cd /usr/local/[root@localhost local]# tar -zxvf nginx-1.14.2.tar.gz [root@localhost local]# cd nginx-1.14.2[root@localhost nginx-1.14.2]# ./configure --prefix=/usr/local/nginx

出现这个就 没问题了

[root@localhost nginx-1.14.2]# make && nake install


如果 没有生成Nginx 文件夹 就分开执行 1. make 2. make install

nginx 命令

5.启动$ /usr/local/nginx/sbin/nginx检查是否启动成功:打开浏览器访问此机器的 IP,如果浏览器出现 Welcome to nginx! 则表示 Nginx 已经安装并运行成功。部分命令如下:重启:$ /usr/local/nginx/sbin/nginx -s reload停止:$ /usr/local/nginx/sbin/nginx -s stop测试配置文件是否正常: $ /usr/local/nginx/sbin/nginx -tnginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful强制关闭:$ pkill nginx

经过编译安装以及解决问题,Nginx 已经运行正常,但是此时 Nginx 并没有添加进系统服务。接下来会将 Nginx 添加进系统服务并且设置开机启动。
在 /usr/lib/systemd/system 目录中添加 nginx.service 内容如下

[Unit]Description=nginx - high performance web serverDocumentation=http://nginx.org/en/docs/After=network.target remote-fs.target nss-lookup.target[Service]Type=forkingPIDFile=/usr/local/nginx/logs/nginx.pidExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.confExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.confExecReload=/bin/kill -s HUP $MAINPIDExecStop=/bin/kill -s QUIT $MAINPIDPrivateTmp=true[Install]WantedBy=multi-user.target

添加完成后再来看下

输入 systemctl start nginx 启动

然后输入 systemctl enable nginx 设置开机启动

Nginx 安装成功.

下面来测试下 主备 nginx

[root@localhost ~]# cd /usr/local/nginx/html/

修改 主 机 index.html
添加

MASTTER:192.168.0.110


修改 备 机 index.html
添加

BACKUP:192.168.0.120


记得修改完要重启nginx

[root@localhost html]# systemctl restart nginx

如果访问不了 WEB 就在隔火墙上 添加

[root@localhost html]# firewall-cmd --zone=public --permanent --add-port=80/tcpsuccess[root@localhost html]# firewall-cmd --reloadsuccess

这是 正常情况下访问:

下 面是关闭服务器 A 访问的页面


再把服务器A打 开访问网页


接着添加 一nginx 脚本 :新建 chk_nginx.sh

[root@localhost ~]# cd /etc/keepalived[root@localhost keepalived]# touch chk_nginx.sh

内容如下

[root@localhost keepalived]# chmod +x chk_nginx.sh    添加执行权限

修改keepalived.conf

[root@localhost keepalived]# systemctl restart keepalived

ok 测试 脚本先 执行

[root@localhost keepalived]# systemctl stop nginx

再访问 网页,发现转到备机上了

实验完成。

节点 服务 文件 系统 两个 服务器 问题 配置 命令 拷贝 环境 测试 运行 成功 信息 内容 脚本 防火墙 开发 编译 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技有限公司 互联网科技公司简介 互联网品科技 互联网科技的发展 易互联网科技有限公司 深圳互联网络科技有限公司 奔汉互联网科技 互联网金融和金融科技 佩信高科技互联网 农村开互联网科技讲堂 岳阳华臻互联网科技有限公司 互联网新科技动漫ppt素材 保险科技服务互联网营销体系 美国互联网科技公司 互联网相关科技技术 互联网科技包装股份有限公司上市 银川新华互联网科技学校原画 广西泛欧互联网科技有限公司 深圳互联网科技园地址 平安好医生打造互联网科技医疗 互联网和科技技术 金融科技创新监管互联网金融 四川慕妮娅互联网科技有限公司 互联网金融科技名词解释 2021世界互联网领先科技成果发布 互联网科技企业商标注意事项 北京互联网科技类企业分布 互联网科技大会大佬 黑龙江互联网科技公司 科技互联网企业在行动
0