Spring 如何以编程方式添加tomcat虚拟主机实例
在过去的两年里,我一直在为使用Grails的公司构建一个社交网络 出现了一个新的需求,即为每个公司创建单独的虚拟主机,该虚拟主机将拥有自己的用户数据库、时间表等(我希望避免重写所有服务层) 例如,最初应用程序运行于 现在,使用我们必须开发的管理控制台,公司应该能够像这样创建自己的子域:等等 我们使用的web服务器是Apache2.2+Tomcat6 有人知道怎么做吗 理想情况下,我希望有一个应用程序实例接收具有不同主机名的请求,这样它就可以有不同的行为,以节省资源,因为Grails占用了太多内存。 例如: subdomain1.my-social-network.com-->apache 2-->my-social-network.com(+特定头文件)-->tomcat 如果这样做是可能的,有没有一种方法可以根据请求参数或头来选择数据源Spring 如何以编程方式添加tomcat虚拟主机实例,spring,apache,tomcat,grails,apache2,Spring,Apache,Tomcat,Grails,Apache2,在过去的两年里,我一直在为使用Grails的公司构建一个社交网络 出现了一个新的需求,即为每个公司创建单独的虚拟主机,该虚拟主机将拥有自己的用户数据库、时间表等(我希望避免重写所有服务层) 例如,最初应用程序运行于 现在,使用我们必须开发的管理控制台,公司应该能够像这样创建自己的子域:等等 我们使用的web服务器是Apache2.2+Tomcat6 有人知道怎么做吗 理想情况下,我希望有一个应用程序实例接收具有不同主机名的请求,这样它就可以有不同的行为,以节省资源,因为Grails占用了太多内存
非常感谢您提供的任何帮助您可以选择许多不同的选项,但首先您需要决定如何在最低级别实施此功能:
{virtual\u path->real\u site}
。当此筛选器检测到已识别请求的虚拟路径时,可以简单地设置相关(提示:servletRequest.setAttribute(字符串,对象)
)
如果用户创建/重命名/删除域/虚拟路径,您将相应地填充映射
最后,渲染组件应该检查该参数并渲染相关站点。在不了解应用程序工作原理的更多细节的情况下,很难进一步详细说明。您想为每个不同的虚拟主机安装一个Web应用程序,还是为流量布线并在上下文中设置一些虚拟主机变量的同一个Web应用程序?我不知道我愿意接受建议谢谢您的回答。我不想将用户重定向到另一个url,但我希望他继续处理原始url。在tomcat和apache之间有这样做的方法吗?当然,这是选项3)。你试过像我描述的那样设置servlet过滤器吗?我想我不太理解选项3。您是说我们应该(apache端)将所有子域添加到tomcat并添加一个http请求参数,该参数将由应用程序的业务逻辑使用吗?如果是这样的话,如何使用apache做这样的事情?使用哪些模块?重点是,您应该在Tomcat中处理所有这些,而不是Apache。Apache应该将所有域转发给您的Tomcat,在那里决定显示哪个站点。在Tomcat中处理所有这些意味着我们应该在业务逻辑中这样做,对吗?我想让它变得更好,这就是为什么我在这里发布这个问题。通常是怎么做的?很多人都这样做,我认为这并不复杂