我已经在Tomcat上公开并实现了一组JSON。我想通过以下URL方法实现Tomcat上这些API的多租户:
companyname1.domain.com/api/getUsers...
companyname2.domain.com/api/getUsers...
companyname3.domain.com/api/getUsers...请告诉我是否有使用上下文或其他机制来实现它的最佳实践。我不想为每一家公司创建单独的Tomcat实例。此外,一旦公司注册,是否有任何方法动态地创建它。
提前谢谢你,莫什
发布于 2014-11-17 07:34:37
在Tomcats server.xml中创建几个倾听您的域的server.xml。这些应该指向不同的webapps目录,在根目录目录中托管您的特定应用程序:
<Host name="localhost" appBase="domain1-webapps" autoDeploy="true" unpackWARs="true"></Host>
<Host name="companyname1.domain.com" appBase="domain1-webapps" autoDeploy="true" unpackWARs="true"></Host>
<Host name="companyname2.domain.com" appBase="domain2-webapps" autoDeploy="true" unpackWARs="true"></Host>
...发布于 2014-11-17 07:12:06
这可以使用为Tomcat webapp提供不同参数的多个反向代理来完成。最简单的设置(使用Apache和ajp)可能是保留原始请求的主机并解决web应用程序中的问题。
<VirtualHost *:80>
ServerName companyname1.domain.com
ProxyPass / ajp://localhost:8009/
ProxyPassReverse / ajp://localhost:8009/
ProxyPreserveHost On
</VirtualHost>
<VirtualHost *:80>
ServerName companyname2.domain.com
ProxyPass /api ajp://localhost:8009/
ProxyPassReverse / ajp://localhost:8009/
ProxyPreserveHost On
</VirtualHost>
<VirtualHost *:80>
ServerName companyname3.domain.com
ProxyPass / ajp://localhost:8009/
ProxyPassReverse / ajp://localhost:8009/
ProxyPreserveHost On
</VirtualHost>发布于 2014-11-17 07:25:39
I can not comment because of my reputation is below than 50.
if URI is same like
companyname1.domain.com/api/getUsers
companyname2.domain.com/api/getUsers
companyname3.domain.com/api/getUsers
then Apache web server found domain companyname1.domain.com and from httpd file, it send call to tomcat application server through AJP connector. But problem is that how can it found which war file to run. 因此,在URL中需要应用程序名称
companyname1.domain.com/abc/api/getUsers
companyname2.domain.com/xyz/api/getUsers
companyname3.domain.com/fgf/api/getUsershttps://stackoverflow.com/questions/26967234
复制相似问题