連接埠 80 到連接埠 8080 重定向:使用 Proxypass 的 Apache 太慢,而直接存取 xyz.com:8080 非常快

連接埠 80 到連接埠 8080 重定向:使用 Proxypass 的 Apache 太慢,而直接存取 xyz.com:8080 非常快

我們面臨著一個奇怪的問題......我們有一個繁忙的伺服器......每個請求的回應時間約為1 分鐘(非常慢)......它在Tomcat 前面運行....如果我們使用xyz.com:8080 訪問該站點,它的速度超級快(1 Req/Sec)......並且我們正在使用Mod_Proxy 將請求重定向到tomcat..... .我的問題而不是從apache 傳遞請求到tomcat我們可以直接向tomcat發送請求嗎...或者我們需要在Apache中進行一些配置......

這是 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

答案1

我猜你的 Apache 運行得很快,但只是 Tomcat 請求速度慢?問題不完全清楚,如果您的 Apache 本身很慢,那麼您需要看看它。只有一個進程可以偵聽端口 80,因此如果您不想指定端口,則必須通過 Apache。或完全廢棄 Apache 並讓 tomcat 監聽 80 連接埠。然而 Apache 應該足夠快來代理這個。

如果 Apache 本身很快,但對於代理商的 Tomcat 請求來說卻很慢,我可以提出一些建議:

DNS 查找可能很慢,但這在本機上很少見。我認為 localhost 位於主機檔案中?您能否將其更改為 127.0.0.1,這樣就不需要 DNS 查找?

您需要所有這些選項嗎?

  • ProxyPreserveHost - Tomcat 是否需要知道主機名稱?如果不需要的話有必要保存嗎?
  • 重試/取得/逾時/保持連線 - 它們更適用於代理程式沒有可靠連線或位於防火牆後面時。當 Apache 和 Tomcat 位於同一台伺服器上時,不需要它們。
  • 代理請求的自訂日誌檔案可能很有用,但我自己沒有使用過。

不明白為什麼它們會引起問題,但還沒有使用它們,所以第一個建議是將它們撕掉,看看是否可以改善情況。然後,如果您需要它們,請將它們一一添加回來,看看問題出在哪裡。

所以我會簡化並替換為:

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

然後再試一次。

我還假設您正在加載 mod_proxy?有時最簡單的事情可能會被錯過;-)

相關內容