Apache-2.2
plesk:如何正確配置反向代理規則?
$$ 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_rewrite
並mod_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 錯誤。然而:
- 通過直接定址 testApp
http://example.com:8080/testApp
確實有效。- 相同的設置確實適用於我的本地電腦。
還有其他東西(可能與 Plesk 相關嗎?)我應該配置嗎?
ErrorLog 中是否有任何線索?
你有沒有嘗試過同樣的事情,但沒有
mod_rewrite
(只是mod_proxy
)這樣:<Location /tomcat> ProxyPass http://example.com:8080/ ProxyPassReverse http://example.com:8080/ </Location>