Skip to content

如何临时下线一个网站

背景需求

前几天我们开发的论坛 KUN Visual Novel 由于测试源 ip 地址泄漏,所以需要重启服务器更换 ip

所以,需要将我们论坛的服务临时下线一段时间

挑战

任何的 Web 服务,面临下线都是较为严重的情况,因为这说明了运维工程师的能力不足,或者代码编写有漏洞

我们在 Web 服务不得不下线时,可以有两种选择

仅下线部分服务

这是较为可取的做法,可以将部分服务暂时迁移,仅提供查询操作,不提供用户的其他操作,这样可以在保证一定访问性的同时进行系统维护

这种方法适用于大型系统,一旦瘫痪将会造成大量的流量损失

一般迁移大型系统有两种较为合适的迁移方法

并行迁移

再部署一个同样的系统,两个系统同时提供服务。好处是服务不会间断,缺点是成本高昂,维护困难

分段迁移

把一整个系统分部分逐渐迁移,这样子可以在费用较低的情况下完成系统迁移

但是,我们的论坛当前算是小型论坛,不需要这种严格的操作,直接下线维护即可

全部下线

这是一种方便快捷的办法,直接了当,不过有一些需要注意的地方

提示用户是维护而不是宕机

这一点极为重要,需要在下线时给用户良好的提示,告知用户

我们不是跑路了,我们只是临时的系统维护

因为下线意味着服务不可用,这是如果有人访问网站,那么第一印象就是,这网站没了

这是一种极为不好的印象,会造成大量用户流失,后果严重

下线时间不宜过长

这一点也非常重要,尤其是对于对 SEO 有要求的网站来说

因为长时间下线会导致网站在搜索引擎中的排名大幅下降,会导致搜索引擎认为这个网站已经宕机,日后恢复以前的搜索排名耗时会极为长

一般,这个时间为一到两天(数据来自于 GPT),在这个时间段内一定要将系统重新上线

如何提示用户网站在维护

我们目前采用的是重定向的方法

  1. 新建一个 down.kungal.com 的子域名
  2. 编写该页面提示用户网站下线
  3. 用户访问网站时将用户重定向到 down.kungal.com

编写下线页面

https://github.com/KUN1007/kun-galgame-down-page

可以看到,这个页面非常简单,就是一个纯 HTML 文件,上面简单的几行字提示用户网站在维护

并且,该页面实现了 i18n

之后,我们将该页面使用 Vercel 部署,即可完成 down 页面

将用户重定向到 down 页面

我们采用了 Cloudflarepage rules,在用户访问 kungal.comwww.kungal.com 时,将用户重定向到 down.kungal.com

采用 Cloudflare 是一种方便的做法

总结

有时候网站临时下线维护是不可避免的,这时候需要采取一定的措施

可以临时迁移一下系统,最起码要让用户知道该网站不是宕机,而是在维护

如果有任何的想法和建议,欢迎点击右上角联系我们