千家信息网

Keepalived实现高可用Nginx反向代理

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,由于好久没有接触过负载相关的调试了复习一下实验系统:(1)CentOS 6.5_x86_64;(2)共有二台主机,本实验以ip地址来命名主机,即10主机、11主机。实验前提:防火墙和selinux都关
千家信息网最后更新 2026年11月02日Keepalived实现高可用Nginx反向代理

由于好久没有接触过负载相关的调试了复习一下

实验系统:

(1)CentOS 6.5_x86_64;

(2)共有二台主机,本实验以ip地址来命名主机,即10主机、11主机。

实验前提:防火墙和selinux都关闭,主机之间时间同步

实验软件:nginx-1.10.2-1.el6.x86_64、keepalived-1.2.13-5.el6_6.x86_64、httpd-2.2.15-59.el6.centos.x86_64
为了方便实验只起了2台虚机方便测试,每台虚机上都安装nginx、keepalived、httpd,逻辑拓扑图如下



一、安装配置keepalived

1.直接使用yum安装:

yum -y install keepalived nginx httpd #如果nginx无法安装先安装epel源,或者编译安装

2.在34主机上配置keepalived:

vim /etc/keepalived/keepalived.conf
--------------------------------------------
global_defs { //此段配置忽略
notification_email {
acassen@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id master
}

vrrp_instance VI_1 {
state MASTER //定义为MASTER主机
interface eth0
virtual_router_id 55      //虚拟id
priority 100          //优先级
advert_int 1 //检测间隔
authentication {
auth_type PASS //认证方式
auth_pass abcd //认证密码
}
virtual_ipaddress {
192.168.1.15 brd 192.168.1.255 dev eth0
}
# notify_master "/etc/init.d/nginx start" //成为MASTER之后执行的动作
# notify_backup "/etc/init.d/nginx stop" //成为BACKUP之后执行的动作
# notify_fault "/etc/init.d/nginx stop" //FAULT之后执行的动作
}


3.将配置文件传到11主机,修改红色部分:


4.两台主机启动keepalived服务,现在10这台主机为MASTER,所以服务都起在这台主机上:

service keepalived start

ip addr show


如果10停止keeplived后,观察11上的vip是否有启动。如果没启动请排查原因,多半是配置文件写错了。

另外有个问题需要注意,如果在master停掉后,backup是可以接过来的,但是master再启动,是接不回去的,只有停掉backup才可以回交给master。


5、配置nginx代理服务器

upstream webservers {
server 192.168.1.10:8000; ##apache-realserver地址

server 192.168.1.11:8000; ##apache-realserver地址
}


server {
listen 80 default_server;
server_name _;
root /usr/share/nginx/html;

# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;

location / {
proxy_pass http://webservers;
proxy_set_header X-Real-IP $remote_addr;
}

}


这里标记了主要部分


6、配置Apache的realserver部分

为了方便测试默认配置基本不用动,主要修改Listen端口为8000

用于区分访问两台realserver的不同每个文件里的内容修改为:


7、最终测试


访问两次的结果分别访问了不同的realserver。测试成功(因为nginx上没有配置ip_hash)所以每次访问到了不同的realserver



主机 配置 实验 测试 不同 动作 地址 文件 部分 服务 虚机 认证 代理 成功 不用 之间 优先级 内容 前提 原因 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广东万易互联网科技有限公司惠州分公司 亿人帮互联网科技有限公司 互联网科技产业 北京互联网科技有限公司 互联网科技金融公司 互联网与新科技 互联网科技革命 极限挑战互联网科技 丰台科技园 互联网 壕鑫互联网络科技 成都仁贤领冠互联网科技有限公司 银川新华互联网科技职业技术培训学校图片 港股科技和互联网 滨湖区互联网智能科技产品有哪些 江苏互联网科技小贷 互联网高科技行业有哪些企业 银川新华互联网科技学校原画 盐城市攀科互联网科技有限公司 数字科技和互联网金融哪个好 杭州科技互联网公司有哪些 保险科技 互联网保险 广州为想互联网科技有限公司 江苏根荣互联网科技 没上市的科技互联网公司 上海互联网科技有限公司 一五八零互联网科技 移动互联网科技股 华夏互联网科技业 深圳育鹏互联网科技有限公司招聘 互联网科技融合创新
0