Amazon-Ec2
在 AWS EC2 上為 Tomcat 8 Web 服務設置 VirtualHost
除了 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>
首先,您是否在 apache 上啟用了 mod 代理?其次嘗試刪除
ProxyPreserveHost On
另外確保埠是打開的;最簡單的檢查方法是訪問http://www.yougetsignal.com/tools/open-ports/(輸入網站地址和埠 80)
希望這可以幫助
(1) 要刪除
/MyService/
部分 url,請將MyService.war
文件重命名為ROOT.war
並將其複製到 webapps 文件夾中sudo cp
。通常,您的 tomcat 安裝預計會在同一文件夾中自動生成一個 ROOT 目錄。(2) 要刪除 :8080,請通過 :80 訪問站點,而不是 URL 欄上未列出的站點,使用
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>