建立自己的服务状态页

国庆最后两天使用 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,进行本地化…… 好了好了我承认我已经给你们打包好了,别打我,哎呦……

修改下载好的文件中第 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 行(对其实第 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 https://stats.uptimerobot.com;
    }

添加监控项

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

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

最后

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

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

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

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

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

-EOF-