如何临时下线一个网站
背景需求
前几天我们开发的论坛 KUN Visual Novel 由于测试源 ip 地址泄漏,所以需要重启服务器更换 ip
所以,需要将我们论坛的服务临时下线一段时间
挑战
任何的 Web 服务,面临下线都是较为严重的情况,因为这说明了运维工程师的能力不足,或者代码编写有漏洞
我们在 Web 服务不得不下线时,可以有两种选择
仅下线部分服务
这是较为可取的做法,可以将部分服务暂时迁移,仅提供查询操作,不提供用户的其他操作,这样可以在保证一定访问性的同时进行系统维护
这种方法适用于大型系统,一旦瘫痪将会造成大量的流量损失
一般迁移大型系统有两种较为合适的迁移方法
并行迁移
再部署一个同样的系统,两个系统同时提供服务。好处是服务不会间断,缺点是成本高昂,维护困难
分段迁移
把一整个系统分部分逐渐迁移,这样子可以在费用较低的情况下完成系统迁移
但是,我们的论坛当前算是小型论坛,不需要这种严格的操作,直接下线维护即可
全部下线
这是一种方便快捷的办法,直接了当,不过有一些需要注意的地方
提示用户是维护而不是宕机
这一点极为重要,需要在下线时给用户良好的提示,告知用户
我们不是跑路了,我们只是临时的系统维护
因为下线意味着服务不可用,这是如果有人访问网站,那么第一印象就是,这网站没了
这是一种极为不好的印象,会造成大量用户流失,后果严重
下线时间不宜过长
这一点也非常重要,尤其是对于对 SEO 有要求的网站来说
因为长时间下线会导致网站在搜索引擎中的排名大幅下降,会导致搜索引擎认为这个网站已经宕机,日后恢复以前的搜索排名耗时会极为长
一般,这个时间为一到两天(数据来自于 GPT),在这个时间段内一定要将系统重新上线
如何提示用户网站在维护
我们目前采用的是重定向的方法
- 新建一个
down.kungal.com
的子域名 - 编写该页面提示用户网站下线
- 用户访问网站时将用户重定向到 down.kungal.com
编写下线页面
https://github.com/KUN1007/kun-galgame-down-page
可以看到,这个页面非常简单,就是一个纯 HTML 文件,上面简单的几行字提示用户网站在维护
并且,该页面实现了 i18n
之后,我们将该页面使用 Vercel
部署,即可完成 down 页面
将用户重定向到 down 页面
我们采用了 Cloudflare
的 page rules
,在用户访问 kungal.com
和 www.kungal.com
时,将用户重定向到 down.kungal.com
采用 Cloudflare
是一种方便的做法
总结
有时候网站临时下线维护是不可避免的,这时候需要采取一定的措施
可以临时迁移一下系统,最起码要让用户知道该网站不是宕机,而是在维护
如果有任何的想法和建议,欢迎点击右上角联系我们