Apache-2.2
Apache 代理錯誤的瀏覽器 url
我正在使用以下內容
VirtualHost
和 mod_proxy 將對我的“api”子域的所有請求代理到位於webapps/webservice
我的 Tomcat 上的 Java Web 服務。<VirtualHost *:80> ServerName api.mydoamin.com ProxyRequests Off ProxyPreserveHost On <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass /webservice http://localhost:8080 ProxPassReverse / http://localhost:8080 </VirtualHost>
我的問題是,如果我輸入“api.mydomain.com”,我會被重定向到“api.mydomain.com/webservice”,並且因為“webservicewebservice”不可用而出現 404 錯誤。
有人知道該怎麼做嗎?
解決方案: 儘管我之前嘗試過這個解決方案,但 Stony 是對的!我的問題是,即使我沒有改變任何東西,我也必須重新啟動 Tomcat 才能使其工作。我多次重新啟動 Apache,但這並沒有改變任何東西。
經過一些測試和許多錯誤,我終於想出了以下解決方案。
我這樣設置我的 apache 虛擬主機:
<VirtualHost *:80> ProxyRequests Off ProxyPreserveHost On <Proxy *> Order deny, allow Allow from all </Proxy> ProxyPass / http://127.0.0.1:8080/ ProxyPassReverse / http://127.0.0.1:8080/ ServerName api.mydomain.com </VirtualHost>
現在它只是在埠 8080 上代理對我的 Tomcat 的所有請求,
api.mydomain.com
而不指向特定目錄。然後我將其添加到
/etc/tomcat7/server.xml
:<Host name="api.mydomain.com" appBase="webapps"> <Context path="" docBase="webservice" /> </Host>
正如
ProxyPreserveHost
在我的 Apache 虛擬主機中啟動的那樣,Tomcat 獲取原始請求的主機名,並能夠自行決定要傳遞哪些內容。內容似乎是從
appBase="webapps"
根目錄傳遞的,即使它位於其他地方。
我不知道我是否正確理解了您的問題,但如果您不希望
webservice
在您的 URL 中出現。然後將您的代理通行證設置為/
.<VirtualHost *::80> ServerName api.mydoamin.com ProxyRequests Off ProxyPreserveHost On <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / http://localhost:8080/webservice/ ProxPassReverse / http://localhost:8080/webservice/ </VirtualHost>
或者您想在該域下執行您的網路服務?你不想要重定向?