关闭 apache2/tomcat6 设置进行维护的最佳方法是什么?具体来说,apache2 可以继续运行,但 tomcat 需要重新启动才能完成许多任务。我最初的想法是将条目中的根目录更改httpd.conf
VirtualHost
为指向新位置,然后发出force-reload
命令将流量从实际的 tomcat 应用程序引导出去。一段时间后,我执行 tomcat 维护,切换条目VirtualHost
,并force-reload
开始将流量引导回来。
有没有更好的方法?我打算开始开发一个相当广泛的 Web 应用程序,而我现在的部署过程包括关闭所有内容并重新启动所有内容。有没有比我建议的更好的方法?
答案1
它要么是您上面描述的,要么如果您有一个负载均衡器和某处的第二台服务器,您可以在 LB 上重新路由流量以指向备用服务器(提供静态的“嘿,我们正在进行维护!稍后再回来!”页面)。
在负载均衡器上处理维护窗口(或通过交换第二台服务器的 IP)的优点是,您可以在再次将实时流量指向它之前端到端地测试您的 Tomcat 堆栈,这可以避免在开发环境中的某些配置潜入生产环境时出现不愉快的意外。
答案2
我看到某处有一个重写版本:
ErrorDocument 503 "Our website is temporarily closed for maintenance. It should reopen by..."
RewriteEngine On
# TO ALLOW YOURSELF TO ACCESS THE SITE NORMALLY, SET THE NEXT LINE TO YOUR IP ADDRESS.
RewriteCond %{REMOTE_ADDR} !^111\.222\.333\.444$
RewriteRule .* - [R=503,L]
IP 111.222.333.444 是您访问网站的 IP 地址。所有其他用户将被重定向到 503 ErrorDocument。将所有这些内容放在虚拟主机根目录的 .htaccess 中。
我不知道它是否适用于 tomcat,但它适用于静态或 PHP 页面。当然,必须配置 Apache 以读取 .htaccess 文件