自动化的Apache服务器维护页面

时间:2020-03-06 14:24:04  来源:igfitidea点击:

我有一个在Linux / Apache / Tomcat堆栈上运行的网站,需要每隔几个月自动将其脱机以进行服务器维护,这将持续任意时间。有哪些选项可以使Apache设置和删除"服务器维护"页面?

我需要能够通过shell脚本来控制它。 (Google提供的答案主要围绕手动编辑服务器配置,我不想凌晨3点到办公室!)我想可以将脚本放入.htaccess文件中,并在完成后将其删除,但这似乎不够优雅。

回答评论:

Mike的答案似乎是最佳实践的答案,尽管我要做的可能更像Dan的答案,因为第三方托管服务提供商控制负载均衡器,而我不想处理这种混乱。谢谢!

解决方案

制作2个配置文件并来回交换它们

如果仅文件的少量更改,则将它们与某种预处理器合并,并从一个源生成标准版本和"脱机"版本,然后在两者之间进行交换。

IIRC apache配置文件还是使用CPP构建的

我们做了类似的事情。我们有一个index.html,可重定向到我们的主页面。进行维护后,我们将运行一个脚本来更改html文件中的重定向。然后我们通过cron和viola自动维护窗口中的脚本。

希望对我们有所帮助!

使用自定义配置文件启动Apache很容易。在我的系统上:

httpd -f <config>

我经常将其与shell脚本结合使用,这是一个非常简单的配置,作为维护占位符。该脚本只是停止我的常规Apache,然后启动它。

我们有一个设置可以做到这一点,但它不仅包含Apache。后面有一个负载平衡器和两个服务器。两台Web服务器均使用Apache为网站提供服务,其中一台具有一个额外的虚拟主机,可提供简单的HTML维护页面。负载平衡器具有虚拟HTTP服务,该服务将请求重定向到真实服务器。该虚拟服务具有三个真实服务器:两个是实际服务器,第三个是第二个服务器上指向维护页面的虚拟IP。实际服务器的权重是第三位,权重尽可能小,并且负载平衡器使用固定的权重算法。因此,当实际网站出于任何原因脱机时,所有请求都将发送给维护主机,用户会看到带有电话号码的错误页面。实际上,我使用了一个小的脚本来检查真实服务器的运行状况,因此,一旦出现故障迹象,就会显示维护页面。

PS。我将Load Master 1500用于loadbalancer。