首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >猫猫多租

猫猫多租
EN

Stack Overflow用户
提问于 2014-11-17 07:02:58
回答 4查看 2.3K关注 0票数 1

我已经在Tomcat上公开并实现了一组JSON。我想通过以下URL方法实现Tomcat上这些API的多租户:

代码语言:javascript
复制
companyname1.domain.com/api/getUsers...
companyname2.domain.com/api/getUsers...
companyname3.domain.com/api/getUsers...

请告诉我是否有使用上下文或其他机制来实现它的最佳实践。我不想为每一家公司创建单独的Tomcat实例。此外,一旦公司注册,是否有任何方法动态地创建它。

提前谢谢你,莫什

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-11-17 07:34:37

在Tomcats server.xml中创建几个倾听您的域的server.xml。这些应该指向不同的webapps目录,在根目录目录中托管您的特定应用程序:

代码语言:javascript
复制
<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>
...
票数 1
EN

Stack Overflow用户

发布于 2014-11-17 07:12:06

这可以使用为Tomcat webapp提供不同参数的多个反向代理来完成。最简单的设置(使用Apache和ajp)可能是保留原始请求的主机并解决web应用程序中的问题。

代码语言:javascript
复制
<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>
票数 1
EN

Stack Overflow用户

发布于 2014-11-17 07:25:39

代码语言:javascript
复制
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中需要应用程序名称

代码语言:javascript
复制
companyname1.domain.com/abc/api/getUsers
companyname2.domain.com/xyz/api/getUsers
companyname3.domain.com/fgf/api/getUsers
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26967234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档