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

相关内容