如何实施“离线维护”页面?

时间:2009-08-19 07:15:21

标签: language-agnostic web

有时当我尝试打开一个网站时,我会看到一个页面上写着“这个网站离线进行维护”,然后一些评论跟随它可能需要多长时间。 Stack Overflow也是这样做的。

它是如何工作的?我的意思是,如果网站关闭谁回复我的HTTP请求并提供此页面?

4 个答案:

答案 0 :(得分:18)

在asp.net中有一个技巧,你可以在其中放置一个名为

的文件
App_Offline.htm

所有请求都将转到此页面,直到该页面被删除。

对于其他环境,您通常只需更改服务器指向的位置或其他此类计划。

- 编辑

通过负载平衡等方式实现与服务器无关的方法。

您可以将请求发送到给定的内部服务器。然后,您可以决定将所有请求指向服务器“a”,您可以将其配置为显示“停机时间”页面。然后,您对服务器“b”进行更改,确认其成功,并将所有请求指向“b”。然后你更新'a',让请求转到两者。

答案 1 :(得分:11)

在ASP.NET(以及Stackoverflow使用的ASP.NET MVC)中,这由app_offline.htm feature提供。这可以通过将所有ASP.NET请求转发到app_offline.htm文件来实现。

顺便说一句,ASP.NET中的copy Web Site tool执行将此文件放在Web应用程序的根目录中的过程,复制网站文件,然后删除此文件。

其他技术的策略是discussed here

答案 2 :(得分:5)

在apache中,您可以使用包含此内容的.htacces文件。

order deny,allow
allow from 192.168.1.151
deny from all

ErrorDocument 403 404.html
ErrorDocument 404 404.html
ErrorDocument 500 404.html

这将拒绝访问除一个IP以外的所有人,并提供静态404.html文件。

这适用于您只有一台服务器没有负载平衡和其他东西的情况。也应该用于负载平衡。

答案 3 :(得分:2)

可以将apache反向代理服务器配置为发送该响应 - 如果它被用作该体系结构的一部分。