• 企业架构LNMP学习笔记26


    通过Keepalived可以实现主服务器整机不可用,实现VIP的切换。保证用户可以通过VIP进行访问服务。但是实际上,往往不是服务器整机不可用,只是对应的服务或者软件不可用。

    比如说,nginx提供的web的服务,nginx进程关闭。

    就需要检测当nginx不可用的时,就切换VIP。

    实现过程分析:

    VIP实际上由Keepalived进行绑定的,所以当nginx服务不可用时,就关闭当前机器的Keepalive即可,释放VIP。进而绑定到其他备用服务器。

    1)编写服务器检测脚本,实现检测nginx是否可用,不可用则关闭当前所在主机的Keepalived。

    2)在Keepalived配置中调用检测服务脚本。

    Nginx服务可用检测脚本:

    主备服务器都要实现此脚本。

    1)编写测试脚本,赋予执行权限:

    1. [root@server01 keepalived]# cat check_nginx.sh
    2. #!/bin/bash
    3. nginx_status=`ps -C nginx --no-header | wc -l`
    4. if [ $nginx_status -eq 0 ]; then
    5. systemctl stop keepalived;
    6. fi

    赋予权限:

    [root@server01 keepalived]# chmod +x check_nginx.sh
    

    测试下脚本可用性:

    启动nginx和Keepalived

    关闭nginx,执行脚本,查看Keepalived是否关闭。

    1. [root@server01 keepalived]# ps aux |grep nginx
    2. root 746 0.0 0.0 46192 1268 ? Ss 08:39 0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
    3. www 748 0.0 0.0 46616 2012 ? S 08:39 0:00 nginx: worker process
    4. www 749 0.0 0.0 46616 2012 ? S 08:39 0:00 nginx: worker process
    5. root 1356 0.0 0.0 112816 972 pts/0 S+ 08:59 0:00 grep --color=auto nginx
    6. [root@server01 keepalived]#
    7. [root@server01 keepalived]# kill -TERM 746
    8. [root@server01 keepalived]# ps aux |grep nginx
    9. root 1360 0.0 0.0 112812 972 pts/0 R+ 09:00 0:00 grep --color=auto nginx

    执行下脚本,再看keepalived的状态。 

    然后VIP已经切换到server03这台服务器上了。

    同样,我们也要在server03这台服务器上添加这个脚本。

    scp check_nginx.sh 192.168.17.109:/etc/keepalived/

    在多台服务器中配置Keepalived定时触发检测nginx脚本模块:

     

    在这个过程中,我纠正了一个nginx的一个配置问题:

    然后我就使用systemctl status nginx就能正常工作了。不会显示错误信息。

    实现web服务器的高可用。

    以上案例已经实现了,服务不可用VIP切换到可用服务器。

    现在需求用户的服务是连续不间断的,故用户需要通过VIP进行访问。

    1)解析域名到VIP;

    2)模拟用户访问;

    在测试的过程中,发现无法ping 通VIP。通过百度。看到可以将vrrp_strict进行注释即可。当然还有两种配置方法。

    然后重启keepalived进程。systemctl restart keepalived。

    然后再进行ping测试,发现可以ping通VIP。

    另外,我们也可以写nginx自愈的脚本编写。

    总结:

    具有故障自动恢复能力的可用性。

    解析域名,切换到可用的服务器上。web的高可用就实现了。

  • 相关阅读:
    【数据结构与算法】| 链表练习
    仿真软件Proteus8.9 SP2 Pro 下载、安装、汉化详细图文教程
    Spring Boot获取节假日API
    mysql索引最左前缀法则、使用场景
    Linux远程连接服务器题
    C++ · 冒泡排序与选择排序
    智慧停车视频解决方案:如何让AI助力停车管理升级?
    No146.精选前端面试题,享受每天的挑战和学习
    【Python】设计模式
    搜索引擎站群霸屏排名源码系统+关键词排名 前后端完整的搭建教程
  • 原文地址:https://blog.csdn.net/chang_chunhua/article/details/132773038