不少同学用 UptimeRobot 来监控自己的服务器/网站之类的是不是正常,但这玩意的监控页面在中国大陆访问困难,绑定自定义域名再套个CDN的话又不支持HTTPS,本文将简要记录解决方案。

配料表:

  • Netlify
  • UptimeRobot

详细步骤:

  1. 在 UptimeRobot 设置好监控页面(Status Page),并得到形如 https://stats.uptimerobot.com/maGicCoDe 的一个网址。显然,stats.uptimerobot.com 是上不去的(参见超级Ping结果
  2. 在 Github 建一个仓库(公共/私有均可)。
  3. 在仓库根目录创建 _redirects 文件,在里面写如下内容:
1
https://status.example.com/ https://stats.uptimerobot.com/maGicCoDe/ 200!
  1. 将该仓库部署到 Netlify,并将 stats.example.com 绑到 Netlify 上面即可。

简要说明与原理

其实这就相当于创建了一个「隐式URL跳转」,阿里云解析的隐式URL跳转不仅不支持HTTPS的跳转,貌似免费版还有个数限制。

隐式跳转的原理嘛,是你访问 https://stats.example.com 的时候,Netlify 给你的浏览器返回了一个 200 OK 的状态码,并指引浏览器到 https://stats.uptimerobot.com/maGicCoDe/,因为收到了 200 OK ,地址栏上的URL并不会发生改变,多少有点欺骗的意思233. 而「显式URL跳转」则是返回的 301 ,所以地址栏显示的URL就会发生改变了。

参考资料