千家信息网

nginx+keepalived高可用主从配置的方法

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇"nginx+keepalived高可用主从配置的方法"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面
千家信息网最后更新 2026年11月03日nginx+keepalived高可用主从配置的方法

这篇"nginx+keepalived高可用主从配置的方法"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"nginx+keepalived高可用主从配置的方法"文章吧。

一、系统环境及软件版本

centos 6.6 x64
keepalived-1.2.18.tar.gz
nginx-1.6.2.tar.gz

主服务器:192.168.38.64

从服务器:192.168.38.66

vip :192.168.38.100

二、nginx安装 (主从安装一致)

1.安装依赖环境

复制代码 代码如下:

yum install gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-developenssl openssl-devel

2.上传nginx到 opt 目录

3.解压安装

  # tar -zxvf nginx-1.6.2.tar.gz  # cd nginx-1.6.2  # ./configure --prefix=/opt/nginx (prefix=/opt/nginx 这个指定的是 nginx目录)  # make && make install

4.修改 nginx监听端口 及 index.html

# vi /opt/nginx/conf/nginx.conf

vi /opt/nginx/html/index.html

5. nginx 启动及常用命令

配置测试: /opt/nginx/sbin/nginx -t 出现如下界面说明配置没问题

启动 : /opt/nginx/sbin/nginx

重启 : /opt/nginx/sbin/nginx -s reload

停止 : /opt/nginx/sbin/nginx -s stop

6.开机启动 nginx

vi /etc/rc.local

加入: /opt/nginx/sbin/nginx

7.修改防火墙开放端口

vi /etc/sysconfig/iptables

添加 : -a input -p tcp -m state --state new -m tcp --dport 8888 -j accept

重启防火墙 : service iptables restart

8.问题

启动 nginx遇到的问题

vi /etc/ld.so.conf

添加: /opt/nginx/lib/

9.nginx的负载均衡

nginx的负载均衡主要是 由upstream 这一模块完成

修改 nginx的配置文件

vi /data/nginx/conf/nginx.conf

添加如下内容:(web_pools 这个名称可变)

  upstream web_pools {   server 10.0.6.108:7080weight=1;   server 10.0.0.85:8980weight=1;  }

将server节点下的location节点中的proxy_pass配置为:http:// + upstream名称即可

结果如下:

其中 weight是权重 backup是备用服务器 ,只有其它服务器宕机后,备用服务器才会启动。

三、keepalived 安装

1.keepalived上传到 opt目录下

2.解压 安装  

  tar -zxvf keepalived-1.2.18.tar.gz  cd keepalived-1.2.18  ./configure --prefix=/opt/keepalived  make && make install

3.将keepalived 安装成 linux服务

cp /opt/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/  cp /opt/keepalived/etc/sysconfig/keepalived /etc/sysconfig/  ln -s /opt/sbin/keepalived /usr/sbin/  ln -s /opt/keepalived/sbin/keepalived /sbin/

4.设置 keepalived 服务开机启动

chkconfig keepalived on

5.修改 keepalived 配置文件

vi /etc/keepalived/keepalived.conf

  ! configuration file for keepalived (!、#都是注释)  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_01 #这个配置要唯一  }   vrrp_script chk_nginx {    script "/etc/keepalived/nginx_check.sh" ## 检测 nginx 状态的脚本路径    interval 2 ## 检测时间间隔    weight -20 ## 如果条件成立,权重-20  }   vrrp_instance vi_1 { #实例 vi_1 名字可以随意 但是不建议修改    state master # 主服务器master 从服务器 backup    interface em1 # em1 网卡    virtual_router_id 51 #virtual_router_id 主备要一致    priority 100   # 优先级 数字越大 优先级越高 priority 的值 主服务器要大于 从服务器    advert_int 1  #设定master与backup负载均衡器之间同步检查的时间间隔,单位是秒    authentication { # 主从通信 验证类型及密码       auth_type pass  #设置vrrp验证类型,主要有pass和ah两种      auth_pass 1111  #设置vrrp验证密码,在同一个vrrp_instance下,master与backup必须使用相同的密码才能正常通信    }     ## 将 track_script 块加入 instance 配置块    track_script {      chk_nginx ## 执行 nginx 监控的服务    }    virtual_ipaddress {    192.168.38.100/24 #vrrp ha 虚拟地址 如果有多个vip,继续换行填写    }  } 

6.编写 nginx 状态检测脚本

vi /etc/keepalived/nginx_check.sh

内容如下:

  #!/bin/bash  a=`ps -c nginx -no-header |wc -l`  if [ $a -eq 0 ];then    /opt/nginx/sbin/nginx    sleep 2    if [ `ps -c nginx --no-header |wc -l` -eq 0 ];then      killall keepalived    fi  fi

保存后,给脚本赋执行权限:chmod +x/etc/keepalived/nginx_check.sh

7.注意点:keepalived主从配置文件不同点

  a.router_id 不一致

  b.state 主服务器是master ,从服务器是 backup

  c.priority 主服务器 大于 从服务器

8.keepalived 命令

  启动 : servicekeepalived start

  停止: servicekeepalived stop

  重启: servicekeepalived restart

9.注意的问题

a.vip没绑定成功

解决方案:ip addr 查看 本地ip所在网卡的名称 ,然后修改 配置文件

vi /etc/keepalived/keepalived.conf

保存后 servicekeepalived restart 重启 keepalived服务即可

10.测试

启动主从nginx和keepalived 服务

主从服务器分别: ip add | grep 192.168.38.100

在192.168.38.64 可看到

同时 在192.168.38.66

当杀死 主服务器上的keepalived 则 从服务器

当再次启动主服务器上的keepalived则结果主服务器上有结果,从服务器上没结果。

当杀死 nginx后,keepalived则会自动启动 nginx服务

11. keepalived脑裂 (ip add | grep 192.168.38.100 在主从都有结果)

解决方案:防火墙问题

iptables-iinput4-pvrrp-jaccept  service iptables saveservice iptables restart

以上就是关于"nginx+keepalived高可用主从配置的方法"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。

服务 服务器 配置 主从 内容 结果 问题 文件 方法 一致 均衡 名称 密码 目录 脚本 防火墙 检测 防火 验证 代码 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 湖北九亚互联网络科技有限公司 互联网佳科技有限公司 盈实互联网科技 互联网金融 科技 上海挚品互联网科技 互联网金融科技创新 广州互联网络科技有限公司 唐信互联网科技 大连 苏州大垚互联网科技 互联网科技网站 互联网科技公司名称 汉立互联网科技有限公司联系电话 赶超互联网科技 微信多开 互联网5g黑科技有哪些 银川新华互联网科技学校联系电话 中国科技创新与世界互联网大会 长沙茂晟互联网科技有限公司 2021互联网科技公司排名 易租星互联网科技有限公司 数字互联网科技有限公司 互联网科技 互联网金融科技 小米互联网科技园设置 宁夏众和广鑫互联网科技有限公司 区块链结合互联网科技 广东鹅鹅鹅互联网科技有限公司 福建互联网展示科技馆设计 艺电能源互联网科技有限公司招聘 悟空问答互联网科技 互联网科技创业计划的风险分析
0