建立自己的服务状态页

国庆最后两天使用 UptimeRobot 提供的 API 建立自己的公开服务状态页,结果不少人问我怎么做的……那就勉强写个辣鸡教程吧,你们凑合看╮(╯▽╰)╭

准备帐号

UptimeRobot 创建一个帐号,一个帐号可以添加 50 个免费监控项目,对于一般人来说都足够使用了。

创建好了之后添加监控项目,然后在 My Settings 里找到 Public Status Pages ,创建一个 For all the monitors 的 Pages (当然你愿意一个个选我也不介意),填写自定义 URL,然后把填写的域名 CNAME 到 stats.uptimerobot.com. ,完成!(雾,这样就可以用官方的页面的,但是对于我这种 HSTS Preload 用户来说显然不行)

准备文件

使用网站采集工具对 UptimeRobot 分配给你的 Standard URL (类似 https://stats.uptimerobot.com/Elw4jFLZ 这种)进行采集,自行修改各个样式表,js,进行本地化…… 好了好了我承认我已经给你们打包好了,别打我,哎呦……

本文中涉及的代码目前由 NeverBehave 继续维护(我大概也会偶尔插一脚),使用他的方案设置和本文有所不同,详情请参见 Github

本文所述方案代码不再提供下载。

修改下载好的文件中第 33 行 var pageID = 为 Standard URL 域名后面那一串 ID

var pageID = 'Elw4jFLZ'; //修改 Elw4jFLZ 为你自己的那一段 ID
var noPrefix = 'false' === 'true';
var pageNumber = parseInt('1', 10);
var sortType = parseInt('1', 10);
(function noop() {})(pageID, noPrefix, pageNumber, sortType);

同样的方法修改 index.php 中第 3 行,第 44 行,第 62 行(对其实第 44 行可以自动赋值的但是我懒不想改 23333)

设置 NGINX

向你的 NGINX  对应状态页的 conf 文件里加入以下内容

location / {
    try_files $uri $uri/ /index.php?uri=$uri&$args;
}
location ^~ /api/ {
        valid_referers *.lwl12.com; #防止别人盗用你的反代,把这里改成你自己的域名即可
        if ($invalid_referer) {
            return 403;
        }
        proxy_redirect off;
        proxy_set_header Host "stats.uptimerobot.com";
        proxy_set_header referer $http_referer;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://stats.uptimerobot.com;
    }</code></pre>

添加监控项

在 UptimeRobot 后台添加监控项时 Friendly Name 需要遵循一定格式,格式为:项目名/分组名/分组顺序 (如果不懂这都对应了啥就去我的监控站比比看,原始名称我魔改的监控页自动生成后的名称)

需要注意的是分组顺序从 0 (最前)开始

最后

然后解析域名到你设置好的服务器重启 NGINX 什么一些乱七八糟的事情不用我写了吧?

注意下,如果你只有一台服务器那就还是不要用这个方法了,毕竟如果状态页自己宕机了也挺尴尬的……

到这里你应该就可以拿你自己的状态页出去装逼了~ 首次添加监控项目的话整个页面需要 7 天的时间收集数据才能填♂满!

最后如果有什么问题请在评论区留言,虽然你留了我也不会回复你

那么,祝大家上班愉快~(被打),我也要去睡觉了=。=,困……

-EOF-

75 条评论

昵称
  1. 狂放

    大佬魔改666,虚拟主机怎么办啊

    1. liwanglin12

      我不是给了一个新版链接么,那个虚机可以用

  2. Pingback: 建立自己的服务状态页 - 奇诺分享 | ccino.net

  3. 言告言归

    这东西不错

  4. mykc

    proxy_pass http://stats.uptimerobot.com;

    这一行我的需要改成https才可以正常访问,后面如果有人不能用的话可以尝试改一下这个哦o(*////▽////*)q

    1. liwanglin12

      实际上之前是https用不了才换的http。。。玄学

      1. mykc

        我也不懂什么情况。
        对了,我想转载并且小小改动一下,附上原作者和链接。|´・ω・)ノ

      2. liwanglin12

        除特殊说明,原创内容采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可
        https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh

        您可以自由地:

        共享 — 在任何媒介以任何形式复制、发行本作品
        演绎 — 修改、转换或以本作品为基础进行创作
        惟须遵守下列条件:

        署名 — 您必须给出合适的姓名或名称,提供许可协议链接,同时表明如果有修改。您可以合理的方式这样做,但是部分以任何方式暗示许可人同意您或您的使用。
        非商业性使用 — 您不得将本作品用于商业目的。
        相同方式共享 — 如果您再混合、转换或者基于本作品进行创作,您必须基于与原先许可协议相同的许可协议 分发您贡献的作品。

      3. mykc

        好的,谢谢。

      4. liwanglin12

        没事,另外你在用Microsoft邮箱的话顺便帮忙标记下邮件为非垃圾邮件吧 ̄﹃ ̄M$的收件箱真的好难进

      5. mykc

        已经标记啦,哈哈

  5. ZuiPinA

    https://www.zuipina.com/2212.html
    可以帮忙看一下是什么问题吗?我用的WP原配主题,但是这个音乐播放器现在是全站都无法播放的,不清楚什么原因。。。

    1. liwanglin12

      请至 Github Issue 提问

  6. 雨巷

    现在不是可以直接别名到自己的域名了么~~~(๑•̀ㅁ•́ฅ)

    1. liwanglin12

      然而我有分组