使用ApacheHTTP实例支持Tomcat的最简单方法
我有一个Tomcat6实例,在多次WAR部署后,由于PermGen问题,它经常需要重新启动 在生产环境中,关闭站点显然是一种不好的做法,只会导致任何访问者出现连接故障。重要的是建立一个包含一个或两个以上实例的故障转移Tomcat集群,但现在我想要一个简单的解决方案: 当Tomcat关闭时,所有请求都被转发到运行1个简单的“站点正在维护”类型页面的Apache HTTP服务器 我想我需要一些小的、超快速的代理来坐在Tomcat前面,为它提供请求并监控它的运行状况。如果它死了,它只会将这些请求发送到ApacheHTTP使用ApacheHTTP实例支持Tomcat的最简单方法,tomcat,apache,cluster-computing,failover,Tomcat,Apache,Cluster Computing,Failover,我有一个Tomcat6实例,在多次WAR部署后,由于PermGen问题,它经常需要重新启动 在生产环境中,关闭站点显然是一种不好的做法,只会导致任何访问者出现连接故障。重要的是建立一个包含一个或两个以上实例的故障转移Tomcat集群,但现在我想要一个简单的解决方案: 当Tomcat关闭时,所有请求都被转发到运行1个简单的“站点正在维护”类型页面的Apache HTTP服务器 我想我需要一些小的、超快速的代理来坐在Tomcat前面,为它提供请求并监控它的运行状况。如果它死了,它只会将这些请求发送到
想法?您可以在安装tomcat之前使用Apache。为tomcat设置重定向代理规则。如果这不起作用,apache将发送一个“503服务暂时不可用”,您可以将其配置为维护页面 apache应用程序文件看起来有点像这样
<VirtualHost *>
ServerName example.com
ServerAlias *.example.com
ServerAdmin admin@example.com
RewriteEngine on
RewriteRule ^/static/(.*) /some/path/for/static/files/static/$1 [L]
RewriteRule ^(.*) http://127.0.0.1:8080$1 [P]
ErrorLog /var/log/apache2/example/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/example/access.log combined
ServerSignature On
ErrorDocument 503 /static/site_down.html
</VirtualHost>
ServerName example.com
ServerAlias*.example.com
服务器管理员admin@example.com
重新启动发动机
重写规则^/static/(.*)/some/path/for/static/files/static/$1[L]
重写规则^(.*)http://127.0.0.1:8080$1[P]
ErrorLog/var/log/apache2/example/error.log
#可能的值包括:调试、信息、通知、警告、错误、临界值、,
#警惕,埃默格。
日志级别警告
CustomLog/var/log/apache2/example/access.log组合
服务器签名
ErrorDocument 503/static/site_down.html
第一个重写规则将某个URI(/static/)下的所有文件更改为一个目录,从该目录直接提供这些静态文件,而无需代理。您也可以使用它来服务网站上的所有静态资源,这在某种程度上弥补了在tomcat前面使用apache所造成的总体(小)性能损失
ErrorDocument指令更改对位于该静态路径中的文档站点_down.html的正常503响应
为此,您需要启用mod_rewrite和mod_proxy/mod_proxy\u http和
在apache2配置中启用代理
<Proxy *>
Order Deny,Allow
Deny from all
Allow from all
</Proxy>
命令拒绝,允许
全盘否定
通融