有时当我尝试打开一个网站时,我会看到一个页面上写着“这个网站离线进行维护”,然后一些评论跟随它可能需要多长时间。 Stack Overflow也是这样做的。
它是如何工作的?我的意思是,如果网站关闭谁回复我的HTTP请求并提供此页面?
答案 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反向代理服务器配置为发送该响应 - 如果它被用作该体系结构的一部分。