2011-06-04 54 views
1

用(64位的centos,8 GB的RAM),MySQL和阿帕奇阿帕奇mod_proxy的,Tomcat的5.5 - 有时没有响应

"-server -Xss1M -Xms2G -Xmx3550m -XX:+UseConcMarkSweepGC -XX:NewSize=1G -XX:MaxPermSize=512m XX:CMSInitiatingOccupancyFraction=70" 

经由Apache作为前端运行Tomcat上的多个应用程序(几乎10结构域的Tomcat 5.5运行对于Tomcat上各种上下文路径)

apache config: 
httpd.conf: 

KeepAlive On 

ProxyRequests Off 

ProxyPreserveHost On 

Timeout 1800 

ProxyPass   /demo http : //127.0.0.1:8080/demo 

ProxyPassReverse /demo http :// 127.0.0.1.22:8080/demo 

ProxyPass   /demo2 http :// 127.0.0.1:8080/demo2 

ProxyPassReverse /demo2 http :// 127.0.0.1.22:8080/demo2 

SetEnv force-proxy-request-1.0 1 

SetEnv proxy-nokeepalive 1 

.htaccess 

RewriteEngine on 

RewriteCond %{HTTP_HOST} ^test\.web\.com$ [NC] 

RewriteRule (.*) http : //test.web.com/demo/$1 [L,R=301] 

RewriteCond %{HTTP_HOST} ^test2\.web\.com$ [NC] 

RewriteRule (.*) http : //test2.web.com/demo2/$1 [L,R=301] 

一切的伟大工程,包括响应时间和所有10个实例(各领域),但每天3-4次:http://test.web.com没有给予任何回应,它抛出空白页(完全空白),而在其空白时,直接url:http://127.0.0.1:8080/demo工作正常。这意味着tomcat的仍然工作正常,似乎Apache不能够将请求转发到tomcat - 现在加载在每个实例是每分钟20。

有时一切正常3-4天,然后就发生,有时它不断发生。空白页出现了一段时间 - 和3-4分钟后 - 页面开始到来。

回答

0

尝试使用JKMount,而不是您的代理配置?

我有Apache的配置类似的东西:在CONF/workers.properties

# 
# Mod_jk settings 
# 
JkWorkersFile "conf/workers.properties" 
JkLogFile "logs/mod_jk.log" 
JkLogLevel info 

# Select the log format 
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " 

# JkOptions indicate to send SSL KEY SIZE, 
JkOptions  +ForwardKeySize +ForwardURICompat -ForwardDirectories 

# JkRequestLogFormat set the request format 
JkRequestLogFormat  "%w %V %T" 


<VirtualHost 127.0.0.1:8443> 
    SSLEngine On 
    SSLCertificateFile conf/ssl/domainacom.cert 
    SSLCertificateKeyFile conf/ssl/domainacom.key 
    ServerAdmin [email protected] 
    ServerName wwwdomainacom 
    ErrorLog logs/wwwdomainacom-error_log 
    CustomLog logs/wwwdomainacom-access_log common 
    JkMount /* wwwdomainacom 
</VirtualHost> 

则:

worker.list=domainacom,domainbcom 

# Set properties for domainacom (ajp13) 
worker.domainacom.port=8009 
worker.domainacom.host=localhost 
worker.domainacom.type=ajp13 
worker.domainacom.lbfactor=50 
worker.domainacom.cachesize=10 
worker.domainacom.cache_timeout=600 
worker.domainacom.socket_keepalive=1 
worker.domainacom.reclycle_timeout=300 

# Set properties for domainbcom (ajp13) 
worker.domainbcom.port=8011 
worker.domainbcom.host=localhost 
worker.domainbcom.type=ajp13 
worker.domainbcom.lbfactor=50 
worker.domainbcom.cachesize=10 
worker.domainbcom.cache_timeout=600 
worker.domainbcom.socket_keepalive=1 
worker.domainbcom.reclycle_timeout=300 

终于在Tomcat中:

<!-- Define an AJP 1.3 Connector on port 8009 --> 
<Connector port="8009" 
      enableLookups="true" redirectPort="8443" protocol="AJP/1.3" URIEncoding="UTF-8" /> 

据我所知,我从来没有失去任何请求。

+0

我已完全删除mod_proxy的,而现在它的tomcat的虚拟主机(多) - 我们仍然收到此。有一个在日志中没有条目,并且应用程序做处理100个并发用户。但有时候还没有回应,它的空白页面。 – amit 2011-06-12 14:22:33

0

是否使用负载均衡?请确保它不是基于PING的。有时托管服务提供商拒绝基于ping的网络负载。