千家信息网

keepalived+nginx

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,我们先来谈谈keepalived的工作原理:keepalived的工作原理基于三个层面,分别时IP层,TCP层和应用层IP 层:keepalived会定期向服务器集群中的服务器发送一个类似于ping程
千家信息网最后更新 2026年11月01日keepalived+nginx


我们先来谈谈keepalived的工作原理:

keepalived的工作原理基于三个层面,分别时IP层,TCP层和应用层
IP 层:keepalived会定期向服务器集群中的服务器发送一个类似于ping程序的ICMP数据包。通俗理解就是我keepalived来ping你服 务器,我要是ping通了,那我知道你还活着,咱们可以继续合作,如果不幸发现你挂了,那就得把这台服务器踢了。该层就是确保服务器ip地址有效,一次来 判断这台服务器可否继续在岗谋职。
TCP层:这一层和IP层类似,只不过IP层检查的是IP,该层检查TCP端口。keepalived在IP层 且报你服务器的IP有效,然后继续看你的TCP端口,比如说你是web server,那你的80端口就应该开启,如果keepalived发现你的80端口没有启动。那么它就会认为你已经挂掉,然后剔除。
应用层:这一层就是具体的工作程序了,keepalived是个恪尽职守的检察官,应用层的程序与用户的设定息息相关,keepalived则通过检查服务器的运行是否和用户设定一致,如果不一致,keepalived就会宣判这台服务器牺牲。

keepalived + nginx

主机:172.25.44.3 server3
备机:172.25.44.4 server4

配置虚拟ip

[root@server3 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0:0DEVICE=eth0:0TYPE=EthernetONBOOT=yesBOOTPROTO=staticDNS1=172.25.44.44IPADDR=172.25.44.100NETMASK=255.255.255.0GETWAY=172.25.44.44[root@server3 ~]# /etc/init.d/network restart[root@server3 ~]# ifconfigeth0      Link encap:Ethernet  HWaddr 52:54:00:48:60:3E          inet addr:172.25.44.4  Bcast:172.25.44.255  Mask:255.255.255.0          inet6 addr: fe80::5054:ff:fe48:603e/64 Scope:Link          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:11926 errors:0 dropped:0 overruns:0 frame:0          TX packets:6533 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000          RX bytes:25662550 (24.4 MiB)  TX bytes:876645 (856.0 KiB)eth0:0    Link encap:Ethernet  HWaddr 52:54:00:48:60:3E          inet addr:172.25.44.100  Bcast:172.25.44.255  Mask:255.255.255.0          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1lo        Link encap:Local Loopback          inet addr:127.0.0.1  Mask:255.0.0.0          inet6 addr: ::1/128 Scope:Host          UP LOOPBACK RUNNING  MTU:16436  Metric:1          RX packets:36283 errors:0 dropped:0 overruns:0 frame:0          TX packets:36283 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:0          RX bytes:1982812 (1.8 MiB)  TX bytes:1982812 (1.8 MiB)
主备机均需配置

安装nginx

安装包:nginx-1.10.3.tar.gz
解压安装包:tar zxf nginx-1.10.3.tar.gz

[root@server3 software]# cd nginx-1.10.3 -prefix=/usr/local/lnmp/nignx[root@server3 nginx-1.10.3]# ./configure[root@server3 nginx-1.10.3]# make[root@server3 nginx-1.10.3]# make install[root@server3 nginx-1.10.3]# ln -s /usr/local/lnmp/nginx/sbin/nginx /usr/local/sbin/#创建nginx的软链接


配置nginx
[root@server3 nginx-1.10.3]# cd /usr/local/lnmp/nginx/conf[root@server3 conf]# vim nginx.conf/#访问8088端口是的发布目录为/var/www/html,而nginx的默认发布目录还是/usr/local/lnmp/nginx/htmlserver {        listen       8088;#监听8088端口        server_name  localhost;    location / {        root   /var/www/html;        index  index.html index.htm;    }    error_page   500 502 503 504  /50x.html;    location = /50x.html {        root   /usr/local/lnmp/nginx/html;    }}[root@server3 conf]# cd /var/www/html[root@server3 html]# vim index.htmlWelcome to nginx!

Welcome to nginx! 172.25.44.3

[root@server3 html]# nginx

安装keepalived

安装包:keepalived-1.2.2.tar.gz

[root@server3 software]# wget http://www.keepalived.org/software/keepalived-1.2.2.tar.gz[root@server3 software]# tar zxf keepalived-1.2.2.tar.gz[root@server3 software]# cd keepalived-1.2.2[root@server3 keepalived-1.2.2]# ./configure[root@server3 keepalived-1.2.2]# make[root@server3 keepalived-1.2.2]# make install[root@server3 keepalived-1.2.2]# cp /usr/local/sbin/keepalived /usr/sbin/[root@server3 keepalived-1.2.2]# cp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/[root@server3 keepalived-1.2.2]# cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/[root@server3 keepalived-1.2.2]# cp -r /usr/local/etc/keepalived/ /etc/
配置leepalived
[root@server3 keepalived-1.2.2]# vim /var/www/html/index.htmlglobal_defs {    router_id LVS_DEVEL}vrrp_script chk_http_port {    script "#state MASTER:MASTER主机,BACKUP备机#priority 100:优先级指定,数字越大优先级越高#virtual_ipaddress:指定vip#track_scrip:检查端口
[root@server3 keepalived-1.2.2]# /etc/init.d/keepalived start

备机次同步主机的操作步骤:keepalived的配置文件中,主机的state为MASTER,备机的state为BACKUP,备机的priority要小于主机

测试

验证nginx启动正常

访问主机nginx的默认页

访问主机nginx的指定页

访问备机nginx的默认页

访问备机nginx的指定页

访问vip

主机server3的优先级更高,在主机完好的情况下,有server3来负载nginx运行

[root@server3 software]# /etc/init.d/keepalived stopStopping keepalived:                                       [  OK  ]
当主机的keeplived服务挂掉的时候,在则访问vip,则由备机自动负载nginx运行
[root@server4 conf]# ip a1: lo:  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 forever2: eth0:  mtu 1500 qdisc pfifo_fast state UP qlen 1000    link/ether 52:54:00:48:60:3e brd ff:ff:ff:ff:ff:ff    inet 172.25.44.4/24 brd 172.25.44.255 scope global eth0    inet 172.25.254.104/24 brd 172.25.254.255 scope global eth0    inet 172.25.44.100/32 scope global eth0    inet 172.25.44.100/24 brd 172.25.44.255 scope global secondary eth0:0    inet6 fe80::5054:ff:fe48:603e/64 scope link       valid_lft forever preferred_lft forever
同时可以看到vip浮动在备机server4上

[root@server3 software]# /etc/init.d/keepalived startStarting keepalived:                                       [  OK  ]
启动主机server3上的keepalived服务,再次访问vip,则nginx的负载运行又回到主机server3上
[root@server3 software]# ip a1: lo:  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 forever2: eth0:  mtu 1500 qdisc pfifo_fast state UP qlen 1000    link/ether 52:54:00:b4:14:0d brd ff:ff:ff:ff:ff:ff    inet 172.25.44.3/24 brd 172.25.44.255 scope global eth0    inet 172.25.254.103/24 brd 172.25.254.255 scope global eth0    inet 172.25.44.100/32 scope global eth0    inet6 fe80::5054:ff:feb4:140d/64 scope link       valid_lft forever preferred_lft forever
该情况下查看ip,发现vip浮动在主机server3上

在应用层出问题的情况下,如停掉主机server3的nginx服务,则备机server4也会自动接管nginx支持前端的访问
[root@server3 software]# killall nginx


问题补充:在备机keepalived的配合配置文件中,如果补修改state的情况下实验也是可以成功的,我觉得应该时两个机子通过priority优先级竞争。


主机 服务 服务器 端口 配置 优先级 应用层 情况 应用 检查 运行 就是 程序 工作 有效 一致 原理 文件 用户 目录 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 亿人帮互联网科技有限公司 云信互联网科技有限公司 华宇互联网科技 互联网 卓越科技 中国互联网金融科技基金 深圳国际航运科技和互联网 以后互联网后是啥科技 互联网科技教育视频 来此购互联网科技有限公司 移动互联网科技公司 企晟互联网信息科技有限公司 恒生互联网科技业指数调整周期 杭州披云加互联网科技有限公司 城市宝互联网科技有限公司 上海乐五互联网科技有限公司 互联网科技手机排行榜 北京互联网科技类企业分布 互联网领先科技成果宣传视频 科技发展第三阶段互联网时代 颐高云石互联网科技 上海睿民互联网科技有限公司 上海万想互联网科技 四个字互联网科技公司取名 互联网科技公司招聘 上海电发互联网科技有限公司 央行互联网金融科技公司 互联网还是高科技吗 银川新华互联网科技学校联系电话 阿里互联网科技企业 上海互联网科技园景观
0