closuresWeb服务器进行维护

注:我是新来的这种情况!

我们如何设法在维护过程中将每个请求redirect到一个页面,该页面表示站点处于维护模式?

我想要自动化这个过程(通过cron):

  1. closuresapache
  2. 做维护(在此期间,每个请求都应该redirect到维护页面)
  3. 启动Apache

在第二点,如何在Apache发生故障时redirect每个请求,或者人们如何pipe理这个(自动化的)? 感谢您的回应。

谢谢

如果您只想在维护过程中使网站无法访问,并使用每个虚拟主机(如ubuntu和debian do)( /etc/apache2/sites-availablesites-disabled )中的一个文件,则只需禁用从网站中删除链接的网站(或将文件移出)。 您还可以创build一个“全部收集”网站,并使其显示“维护信息”。

其他选项是使用iptables将http端口上的所有stream量redirect到服务器上的另一个端口,在那里你可以运行一个辅助的web服务器(lighttpd或nginx或任何非常小的可以提供静态html页面的东西)。 规则是:

 iptables -t nat -A PREROUTING -p tcp -i ethX -d <server ip> –dport 80 -j DNAT –to <server ip>:<new port> 

您也可以完全redirect到另一个服务器/端口。

Apache需要继续运行来为网站提供服务,但是您可以将其configuration为使用DocumentRoot指令将所有请求发送到维护网页。 假设您在维护目录中创build维护通知页面,如下所示:

正常操作:

 DocumentRoot "/var/www/html" #DocumentRoot "/var/www/html/maintenance" 

维护操作:只需注意正常,并取消维护线的注释:

 #DocumentRoot "/var/www/html" DoucmentRoot "/var/www/html/maintenance" 

然后重新加载Apache来激活更改: /etc/init.d/httpd reload 。 当你完成时,只要改变过程。

请注意,如果您有多个VirtualHost,则需要对每个VirtualRost进行DocumentRoot更改。 有可能(可能是)一个更简单的方法 – 一个简单的设置,这就是我所做的。

我不能谈论Apache,但这里是我如何在IIS中(这意味着,恕我直言,有一个更好的接口)。

  • 我有一个文件夹中的网站(明显)
  • 我在另一个文件夹是“维护站点”的另一个网站。
  • 我只是在维护之前更改网站上的文件夹。

IIS / ASP.NET也有一个很好的机制,其中一个“块文件”将整个站点变成维护模式。 这是通过将网页“app_offline.htm”放入网站的根文件夹中完成的。 负面的odf,就是你不能在另外一个URL下testing这个站点(这可能对于最后一次内部检查来说是很有用的)。 所以,我去了一个维修站点。

有一个单独的文件夹和redirect的网站是恕我直言最快的方式。