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

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

vi /opt/nginx/html/index.html

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

5. nginx 启动及常用命令

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

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

启动 : /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遇到的问题

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

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名称即可

结果如下:

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

其中 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所在网卡的名称 ,然后修改 配置文件

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

vi /etc/keepalived/keepalived.conf

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

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

10.测试

启动主从nginx和keepalived 服务

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

在192.168.38.64 可看到

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

同时 在192.168.38.66

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

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

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

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

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

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

解决方案:防火墙问题

iptables-iinput4-pvrrp-jaccept  

service iptables save

service iptables restart

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

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


分享标题:nginx+keepalived高可用主从配置的方法
标题网址:http://csdahua.cn/article/pijhoe.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流