Apache-2.2

plesk:如何正確配置反向代理規則?

  • June 14, 2018

$$ edit $$: FWI,感謝 Vadym 在下面的評論,我發現我忽略了mod_proxy_http在我的 Plesk 伺服器上啟用。載入此模組(與 一起mod_proxy)修復了原始錯誤。

我正在嘗試在vhost.conf. 我在 Ubuntu-8.04 上有 Apache-2.2.8,由 Plesk-10.4.4 監控。

我想要實現的是定義一個反向代理規則,該規則將所有流量推遲到 -say-http://example.com/tomcat/到在埠 8080 上執行的 Tomcat 伺服器。我已經載入mod_rewritemod_proxy載入了 Apache。據我了解mod_proxy文件,輸入以下規則/var/www/vhosts/mydomain/conf/vhost.conf應該有效:

<Proxy *>
 Order deny,allow
 Allow from all
</Proxy>

ProxyRequests off
RewriteRule ^/tomcat/(.*)$ http://example.com:8080/$1 [P]

然而,我在請求上述 URL 時收到 HTTP 500: internal server error。(注意:我決定使用重寫規則,以便至少記錄一些資訊。)

我已經mod_rewrite廣泛製作日誌,並在日誌中找到以下條目[注意:由於最大限制。新使用者文章中的 2 個 URL,我已修改所有以下 URL,以便它們在 http: 之後僅包含 1 個斜杠。如果您懷疑拼寫錯誤:這是故意這樣做的):

192.0.2.23 - - [19/Mar/2012:16:42:59 +0100] [example.com/sid#b06ab8][rid#1024af8/initial] (2) init rewrite engine with requested uri /tomcat/testApp/
192.0.2.23 - - [19/Mar/2012:16:42:59 +0100] [example.com/sid#b06ab8][rid#1024af8/initial] (3) applying pattern '^/tomcat/(.*)$' to uri '/tomcat/testApp/'
192.0.2.23 - - [19/Mar/2012:16:42:59 +0100] [example.com/sid#b06ab8][rid#1024af8/initial] (2) rewrite '/tomcat/testApp/' -> 'http:/example.com:8080/testApp/'
192.0.2.23 - - [19/Mar/2012:16:42:59 +0100] [example.com/sid#b06ab8][rid#1024af8/initial] (2) forcing proxy-throughput with http:/example.com:8080/testApp/
192.0.2.23 - - [19/Mar/2012:16:42:59 +0100] [example.com/sid#b06ab8][rid#1024af8/initial] (1) go-ahead with proxy request proxy:http:/example.com:8080/testApp/ [OK]

這表明重寫和代理部分處理正常;代理請求仍然會產生 500 錯誤。然而:

  • 通過直接定址 testApphttp://example.com:8080/testApp 確實有效。
  • 相同的設置確實適用於我的本地電腦。

還有其他東西(可能與 Plesk 相關嗎?)我應該配置嗎?

ErrorLog 中是否有任何線索?

你有沒有嘗試過同樣的事情,但沒有mod_rewrite(只是mod_proxy)這樣:

 <Location /tomcat>
   ProxyPass http://example.com:8080/
   ProxyPassReverse http://example.com:8080/
 </Location>

引用自:https://serverfault.com/questions/371211