千家信息网

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

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇"nginx+keepalived高可用主从配置的方法"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面
千家信息网最后更新 2025年12月02日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安全错误 数据库的锁怎样保障安全 杭州初级软件开发工程司招聘 查询数据库5条数据类型 数据库第三级安全标记等级 数据完整性是数据库的特点么 少先队网络安全活动计划 服务器管理器功能有哪些 云计算网络技术与应用总结 远程访问共享mdb数据库 sql数据库表中增加一个人 小学生网络安全法测试题答案 奥乐软件开发 网络安全剧本故事初中生 广州讯鸿网络技术有限公司 exce怎样隐藏数据库 防城港软件开发培训 服务器无法引导开机 芝麻代理服务器 sql数据库文件怎么分割 干部档案管理信息系统数据库 电商系统软件开发服务方案价钱 杭州hpe刀片服务器多少钱 湖北广电网络安全会议内容 延时摄影红石服务器 复试科目数据库技术 服务器登陆账号密码怎么修改 科技互联网最新信息 数据库设置别名都有哪些方法 怎么传文件到服务器 海智网聚网络技术公司怎么样 塔科夫怎么开全球服务器
0