除了 AWS EC2 Linux 上的預設 Apache 之外,我還安裝了 Tomcat 8 並在其上部署了 Web 服務。
目前的 URL(有效)是http://example.com:8080/MyService/api/generatePath
我想使用子網域 api.mydomain.com 來縮短此長度,以便我可以使用以下 URL:http://api.example.com/generatePath。
這是我在 上所做的/etc/httpd/conf/httpd.conf
,但它不起作用:
<VirtualHost *:80>
ServerName api.example.com
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://localhost:8080/MyService/api
ProxyPassReverse / http://localhost:8080/MyService/api
</VirtualHost>
答案1
首先你在apache上啟用了mod代理嗎?其次嘗試刪除 ProxyPreserveHost On
此外,請確保連接埠已開啟;最簡單的檢查方法是前往http://www.yougetsignal.com/tools/open-ports/(輸入網站位址和連接埠80)
希望這可以幫助
答案2
(1) 若要刪除/MyService/
url 的部分,請將MyService.war
檔案重新命名為ROOT.war
並將其複製到 webapps 資料夾中,使用sudo cp
.通常,您的 tomcat 安裝會在同一資料夾中自動產生 ROOT 目錄。
(2) 若要刪除 :8080,請使用您指定的已安裝版本,透過 URL 欄上未列出的 :80 造訪該網站httpd.conf
。編輯以下兩件事,使其看起來像這樣。
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
<VirtualHost *:80>
ServerName api.example.com
ProxyRequests On
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
<Location "/">
Order allow,deny
Allow from all
</Location>
</VirtualHost>