V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
a2001103
V2EX  ›  Linux

请问大家这个最后一步怎么实现啊,大家能和我说下思路嘛 谢谢了!

  •  
  •   a2001103 · 2020-11-01 17:55:08 +08:00 · 3242 次点击
    这是一个创建于 1486 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Shellscript(bash)
    1.安装 bash 服务;
    2.服务监控脚本:/shells/chkWeb.sh;
    3.在 Rserver 上编写脚本监控公司的网站运行情况;
    4.脚本可以在后台持续运行;
    5.每隔 3S 检查一次网站的运行状态,如果发现异常尝试 3 次;
    6.如果确定网站无法访问,则返回用户“网站正在维护中,请您稍后再试”的页面;
    8 条回复    2020-11-02 00:51:15 +08:00
    hendyzone
        1
    hendyzone  
       2020-11-01 18:05:09 +08:00
    有点 Eureka 原始形态的感觉。
    可以试试由一个服务转发的模式?所有请求都来这个高可用服务然后根据状态转发
    a2001103
        2
    a2001103  
    OP
       2020-11-01 18:22:38 +08:00 via Android
    @hendyzone 好 我去了解下谢谢啦
    ETiV
        3
    ETiV  
       2020-11-01 18:27:50 +08:00 via iPhone   ❤️ 1
    感觉是个伪需求?

    看到中间我还以为要监控网站状态然后推送消息

    如果并不是在真的维护的话,用 nginx 5xx 自定义错误页面就好了?错误页面显示个“维护中”
    a2001103
        4
    a2001103  
    OP
       2020-11-01 18:30:53 +08:00 via Android
    @ETiV 好 谢谢你
    renmu123
        5
    renmu123  
       2020-11-01 18:56:57 +08:00 via Android
    网站运行状态有异常的原因有比较多,比如服务器被人关了,NGINX 挂了,还是数据库删库了,还是其他问题?可能处理方法都不太一样
    a2001103
        6
    a2001103  
    OP
       2020-11-01 19:44:27 +08:00
    @renmu123 这个是一个题目 就是要监控它的运行情况 然后可以返回那个页面 就是模拟一下啦
    dorothyREN
        7
    dorothyREN  
       2020-11-01 22:34:13 +08:00
    nginx 好像有这功能吧,后端服务都挂掉的话返回个维护页面
    DoctorCat
        8
    DoctorCat  
       2020-11-02 00:51:15 +08:00
    不扯其他的方案,只说你这第 6 步的实现:
    HTTP_CODE=$(curl -o /dev/null -s -w "%{http_code}" http://www.baidu.com)
    if [ 200 -ne ${HTTP_CODE} ]; then
    echo '网站正在维护中,请您稍后再试'
    fi

    简单粗暴不考虑阻塞的话,web 程序中调用脚本,从 stdout 读到这条消息,返回给前端即可。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5387 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 09:23 · PVG 17:23 · LAX 01:23 · JFK 04:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.