我想将我服务器上的所有虚拟主机关闭一段时间以进行维护。
临时页面应该包含类似
抱歉,页面www.xxx.com正在维护中。您可以在这里查看缓存版本:
然后是诀窍: 只要服务器关闭,用户就应该从 googlecache 或类似缓存中看到所请求页面的缓存页面。
这将在页面上显示正确的内容,这些页面无论如何都是静态的,并且在许多情况下为访问者提供所需的内容,同时我可以关闭 mysql 和其他通常需要显示该页面的服务。
如何在所有虚拟主机上设置一个全局页面,通过 PHP 解析原始请求的 URL?
答案1
使用 javascript 的解决方案:
创建一个名为
offline.html
HTTP/1.0 200
Content-Type: text/html; charset=utf-8
<html><body>
sorry, the site is currently down for maintenance.<br>
<SCRIPT>
document.write('<iframe src="http://webcache.googleusercontent.com/search?q=cache:'
+location.href
+'" style="width:100%;height:95%"></iframe>');
</SCRIPT></body></html>
并设置一个临时服务器
$ apt-get install ucspi-tcp
$ tcpserver 0.0.0.0 80 sh -c 'awk "/^\r*$/ { exit }"; cat offline.html'
但似乎谷歌不允许在 iframe 中存在这样的链接,因此需要另一个缓存。
来源: