不少同学用 UptimeRobot 来监控自己的服务器/网站之类的是不是正常,但这玩意的监控页面在中国大陆访问困难,绑定自定义域名再套个CDN的话又不支持HTTPS,本文将简要记录解决方案。
配料表:
- Netlify
- UptimeRobot
详细步骤:
- 在 UptimeRobot 设置好监控页面(Status Page),并得到形如
https://stats.uptimerobot.com/maGicCoDe
的一个网址。显然,stats.uptimerobot.com
是上不去的(参见超级Ping结果) - 在 Github 建一个仓库(公共/私有均可)。
- 在仓库根目录创建
_redirects
文件,在里面写如下内容:
1 | https://status.example.com/ https://stats.uptimerobot.com/maGicCoDe/ 200! |
- 将该仓库部署到 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就会发生改变了。