我有一个在 Linux/Apache/Tomcat 堆栈上运行的网站,需要每隔几个月自动离线一次以进行服务器维护,这将持续任意时间。有哪些选项可以让 Apache 建立和删除“服务器维护”页面?

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


回答评论:

迈克的回答 看起来像是最佳实践的答案,尽管我要做的可能更像是 丹的回答 因为第三方托管提供商控制着负载均衡器,我不想处理这种混乱。谢谢!

有帮助吗?

解决方案

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

附言。我使用 Load Master 1500 作为负载均衡器。

其他提示

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

httpd -f <config>

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

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

如果只有一点点文件会发生变化,请将它们与某种预处理器合并,并从一个源生成标准版本和“离线”版本,并在这些版本之间进行交换。

IIRC 无论如何,apache 配置文件都是使用 CPP 构建的

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

希望有帮助!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top