keepalived+nginx 模型示例

原理为:

调度器 利用 keepalived 保持高可用性,实现对系统的监控和VIP 的floating

NGINX 利用upstream模块进行调度

关键点:

keepalived 对NGINX 状态的监控: //利用配置文件中设定的脚本对调度器的nginx 进程的监控

实验步骤:

基于上一篇LVS-DR架构来做,具体LVS-DR架构请参考上一篇

  • 先设置主备单VIP 式LVS架构
    • 调度器分别安装nginx

      #yum install nginx -y

    • 修改配置文件,填加反代设置 /etc/nginx/nginx.conf

      upstream websrvs{

      server 172.18.48.63:80 ;

      server 172.18.48.64:80 ;

      server 127.0.0.1:80 backup;

      }

      注:这里是最基本的配置

      location / {

      proxy_pass http://websrvs;

      }

    • 配置keepalived 配置文件

      订制监控脚本:

      vrrp_script nginxstatus {

      script “kill -0 nginx && exit 0 || exit 1”

      interval 1

      weight -5

      }

      调用脚本:

      track_script {

      nginxstatus

      }

    • 启动 nginx 和 keepalived 服务

      service nginx start

      service keepalived start

    • 测试链接:
      • keepalived+nginx 模型示例
      • 循环链接测试

        keepalived+nginx 模型示例

  • 现在构建双主模型 // 即再次配置一套keepalived
    • 备调度器设置

    keepalived+nginx 模型示例

    从调度器设置

    keepalived+nginx 模型示例

    重新启动keepalived

    #service keepalived restart

    VIP分布:

    keepalived+nginx 模型示例

    keepalived+nginx 模型示例

    测试链接:

    keepalived+nginx 模型示例

  • 现在停掉一个调度器中的nginx服务:
    • VIP地址 已经转移;再次链接实验
    • keepalived+nginx 模型示例
    • 再次链接: //成功
    • keepalived+nginx 模型示例

    • 现在测验nginx 的调度算法为ip_hash 时,VIP Floating 会不会带来影响:

      预想应该不会受影响,nginx 的哈希算法不变的话就不会变

      • keepalived+nginx 模型示例
      • 注: ip_hash 不能于backup 共存,
      • 官方说明:

        If one of the servers needs to be temporarily removed, it should be marked with the down parameter in order to preserve the current hashing of client IP addresses.

      • 重启服务:

        service nginx restart

      • 链接测试:

        双调度器都在线时:

        keepalived+nginx 模型示例

      • 停掉149 的nginx 服务时:

        keepalived+nginx 模型示例

        测试链接:

        keepalived+nginx 模型示例

      • 149 nginx 服务重启后:
        • keepalived+nginx 模型示例

        • keepalived+nginx 模型示例
      • 测试链接:

        keepalived+nginx 模型示例

      • 148测试也没有变化:

    思考题

    nginx使用ip_hash或hash $request_uri算法时,故障切换后,同一个客户端是否依然能关联至此前绑定的upstream server;

    答:由于hash 时nginx 根据预定的算法进行的计算,所以只要IP和请求资源不变,被调度的地址就不会变

原创文章,作者:zhoulz,如若转载,请注明出处:http://www.178linux.com/75428

(0)
上一篇 2017-05-13 21:30
下一篇 2017-05-13 21:40

相关推荐

  • N25_第一周

    计算机组成 计算机通常由硬件和软件组成1.硬件 CPU CPU通常由控制器和运算器组成。控制器:是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。运算器:是对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。 存储 存储器的功能是存储程序、…

    Linux干货 2016-12-03
  • linux网络管理

    在 /etc/udev/rules.d/路径下有个70-persistent-ipoib.rules文件,;里边有关于网卡信息的配置,,,在里边可以更改网卡的名字 注意:修改完之后要在/etc/sysconfig/network-scripts/ifcfg-eth0中修改,不然不能使用。 在Centos6以后有一个服务NetworkManager,他可以自动…

    Linux干货 2016-09-06
  • M20 – 1- 第二周(2):硬链接与软链接的区别

    在讲硬链接与软链接的区别之前,我们首先了解inode,了解inode让我们更容易理解何为硬链接和软链接。 inode概念        何为inode,inode就是索引节点,而inode表中存放着文件的元数据,何为元数据,元数据就是文件名称、大小、时间戳、所有者、权限、inode等信息,而文件中的内容就是文件的数据,…

    Linux干货 2016-08-02
  • Mysql之运用MHA的功能实现服务高可用

    MHA介绍 (Master High Availability) MHA(Master HA)是一款开源的 MySQL 的高可用程序,它为 MySQL 主从复制架构提供 了 automating master failover 功能。MHA 在监控到 master 节点故障时,会提升其中拥有最新数据的 slave 节点成为新的 master 节点,在此期间,…

    2017-09-14
  • B-树和B+树的应用:数据搜索和数据库索引

    B-树 1 .B-树定义 B-树是一种平衡的多路查找树,它在文件系统中很有用。 定义:一棵m 阶的B-树,或者为空树,或为满足下列特性的m 叉树:⑴树中每个结点至多有m 棵子树;⑵若根结点不是叶子结点,则至少有两棵子树; ⑶除根结点之外的所有非终端结点至少有[m/2] 棵子树;⑷所有的非终端结点中包含以下信息数据:    &nb…

    Linux干货 2015-07-30
  • httpd应用举例

    应用举例1、基于用户和组认证的方式访问ftp         1、编辑配置文件/etc/httpd/conf/httpd.conf,并使用httpd -t 检查语法,并systemctl reload httpd       &n…

    Linux干货 2016-10-23