我正在服务器的以下位置的 Tomcat 上运行 Web 应用程序。
/var/tomcat/webapps/SoccerApp
我正在寻找使用以下虚拟主机更新 Tomcat httpd.conf 文件...
<VirtualHost *:80>
DocumentRoot /var/tomcat/webapps/SoccerApp/MyTeam
ServerName www.mysoccerapp.com
</VirtualHost>
由于目录 MyTeam 不存在,因此会出现 404 错误。但是,我的应用程序的行为方式是,它使用此 URL 目录作为要显示数据的足球队的名称,因此它永远不会是服务器上的物理文件夹。尽管如此,我希望 www.mysoccerapp.com 解析为 webapps/SoccerApp/MyTeam,即使目录不存在。
这有意义吗?关于如何实现这一点,您有什么想法吗?归根结底,我想做以下事情...
www.teamone.com -> runs /webapps/SoccerApp/TeamOne
www.teamone.com -> runs /webapps/SoccerApp/TeamTwo
...其中 TeamOne 和 TeamTwo 不是物理目录,而仅仅由我的 SoccerApp 应用程序处理为当前足球队来显示数据。
非常感谢!
戴夫。
答案1
您需要使用 mod_proxy 设置反向代理。然后您可以将这两个 URL 指向处理网站的 Web 应用程序。
Apache 文档对此进行了很好的解释,但以下是来自我们某个网站的相关部分:
ProxyRequests off
<Location /app>
ProxyPass https://www.ourwebsite.com/
ProxyHTMLURLMap https://www.ourwebsite.com /app
ProxyPassReverse https://www.ourwebsite.com/
SetOutputFilter proxy-html
ProxyHTMLURLMap / /app/
ProxyHTMLURLMap /app /app
RequestHeader unset Accept-Encoding
</Location>