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)
zhoulzzhoulz
上一篇 2017-05-13 21:30
下一篇 2017-05-13 21:40

相关推荐

  • 打造自己小小的RPM包

    关于源码RPM包的安装于制作 什么是RPM与SRPM? 1     RPM: 1     SRPM: 2     SRPM的安装 2 一 .利用rpmbuild默认安装SRPM档案 2 二.配置路径与需要的软件功能模块 3  &n…

    Linux干货 2016-08-24
  • keepalived +LVS DR 双主互备模型实验

    keepalived +LVS DR 双主互备模型实验  实验环境介绍     操作系统:DR:centos 7.2 两个节点,都安装keepalived             &nbsp…

    Linux干货 2016-03-09
  • linux基础命令

            转眼已经过了一周,在南老师的悉心指导下,我学会了一些基础的LINUX命令,下面做一下本周小结。 命令1:tty、who am i、whoami、w 作用:查看当前登录信息            终端传递信息 echo hello &g…

    Linux干货 2017-07-15
  • Linux之SELinux

      Linux之SELinux     本文包括以下内容SELinux概念启用SELinux管理文件安全标签管理端口标签管理SELinux布尔值开关管理日志查看SELinux帮助   SELinux介绍SELinux: Secure Enhanced Linux,是美国国家安全局(NSA=The National Se…

    Linux干货 2016-09-21
  • 马哥教育网络班22期+第1周课程练习

    马哥教育网络班22期+第1周课程练习 1、描述计算机的组成及其功能。 CPU (运算器+控制器), 存诸器(内存与外存),输入设备,输出设备。 运算器:对数据进行加工处理的部件(包括算述运算与逻辑运算)。 控制器:负责从存储器取出指令,按指令的要求发出控制信号,使各部件协调的,一步步的完成各种操作。 存储器:计算机记忆或暂存数据的部件 输入设备:人机接口,负…

    Linux干货 2016-08-12
  • bash的基础特性之一

    bash的基础特性之一 命令历史:shell进程会保存会话中此前用户使用过的命令; history:命令的用法 history 【-c】【-d #】 【n】或者【文件名】     -c:清空命令历史     -d 【#】:删除指定的命令历史…

    Linux干货 2016-12-18