4

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

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


回复评论:

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

4

4 回答 4

5

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

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

于 2008-09-19T00:00:35.017 回答
3

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

httpd -f <config>

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

于 2008-09-18T23:54:19.713 回答
2

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

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

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

于 2008-09-18T23:51:54.010 回答
0

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

希望有帮助!

于 2008-09-18T23:52:46.237 回答