在 AWS EC2 上為 Tomcat 8 Web 服務設定 VirtualHost

在 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>

答案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>

相關內容