除了 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>