端口80到端口8080redirect:与Proxypass的Apache太慢,而直接访问xyz.com:8080是非常快

我们正面临着一个奇怪的问题….我们有一个繁忙的服务器…和响应时间约1分钟每请求(非常缓慢)…..这是运行在Tomcat的…..如果我们访问网站与xyz.com:8080其超快速(1 Req /秒)…..我们正在使用Mod_Proxyredirect请求到Tomcat …..我的问题,而不是从Apache传递请求到tomcat我们可以直接发送请求到tomcat …或者我们需要在Apache中的一些configuration…….

这里是Httpd.conf文件的外观

ProxyPreserveHost On ProxyPass / http://localhost:8080/ retry=1 acquire=300 timeout=60 Keepalive=On ProxyPassReverse / http://localhost:8080/ ErrorLog /Path/To/Logs/Apache.log LogLevel warn 

我认为你的Apache运行速度很快,但对于Tomcat请求只是很慢? 问题不完全清楚,如果你的Apache本身很慢,那么你需要看看。 只有一个进程可以监听端口80,所以如果你不想指定端口,你将不得不通过Apache。 或者完全抛弃Apache,而是让tomcat在端口80上监听。 但是Apache应该足够快来代理这个。

如果Apache本身速度很快,但是代理的Tomcat请求速度很慢,我可以提出一些build议:

这可能是一个缓慢的DNS查找,但在本地主机上很less见。 我认为localhost是在主机文件? 你可以改变这个127.0.0.1,所以你不需要一个DNS查找?

你需要所有这些选项吗?

  • ProxyPreserveHost – Tomcat是否需要知道主机名? 如果没有任何需要保存它?
  • retry / aquire / timeout / keepalive – 它们更适用于代理不在可靠连接或防火墙后面的情况。 当Apache和Tomcat坐在同一台服务器上时,不应该需要它们。
  • 代理请求的自定义日志文件可能很有用,但不能自己使用。

不明白为什么他们会造成问题,但没有使用它们,所以首先build议是撕掉它们,看看是否改善了事情。 那么,如果你需要他们,把他们一个接一个地加回来,看看问题出在哪里。

所以我会简化和取代这个:

 ProxyPass / http://127.0.0.1:8080/ ProxyPassReverse / http://127.0.0:8080/ 

然后再试一次。

我也假定你正在加载mod_proxy? 有时最简单的东西可能会被错过;-)