我有一个域名,例如 www.domain.com。我开发了一个java web应用程序,比如jwa。现在我想使用子域为不同的客户端安装相同的应用程序,最好的解决方案是什么?
像“client1.domain.com”之类的东西指向“client1”(重命名为jwa)
我知道我们可以获取 client1.domain.com/client1/ 但 client1 两次并不好。或者至少我们可以在没有多个 tomcat 实例的情况下获得 client1.domain.com/jwa/ 吗?顺便说一句,我在同一台服务器上运行 apache http 服务器,并为 java/tomcat 应用程序使用“proxy_module”
Regards
您不需要多个 Tomcat 实例 - 您可以跨多个子域指向多个客户端来使用同一个 Web 应用程序
但请确保这适合您的业务用例 - 也就是说,您真的这样做吗?想要 web 应用程序的多个实例运行,或者单个实例可以为您的所有客户端提供服务。
我指的是品牌/徽标/共享数据/外观和感觉等 - 这在所有客户中都是常见的吗?
假设是这样。
配置了 Apache 后,正确的方法是使用VirtualHost
指令与 mod_proxy 一起。
在 Apache 端这样的配置应该可以工作 - 每个子域创建一个,并指向ProxyPass
and ProxyPassReverse
到 Tomcat Web 应用程序
<VirtualHost *:80>
ServerName client1.domain.com
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /jwa http://client1.domain.com:8080/jwa
ProxyPassReverse /jwa http://client1.domain.com:8080/jwa
</VirtualHost>
相关阅读
阿帕奇文档有很多 VirtualHost 配置的示例 http://httpd.apache.org/docs/2.0/vhosts/examples.html
还有一个没有 Apache httpd 的解决方案,您可以在 Tomcat server.xml 中配置主机整体,但 Apache 是管理域 URL 的更好地方
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)