使用临时静态缓存的原始页面将所有 apache 站点设置为离线

使用临时静态缓存的原始页面将所有 apache 站点设置为离线

我想将我服务器上的所有虚拟主机关闭一段时间以进行维护。

临时页面应该包含类似

抱歉,页面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 中存在这样的链接,因此需要另一个缓存。

来源:

相关内容