这是我服务器的配置。我有 domain1(domain1.com) 和 domain2(domain2.com), Domain3 (domain3.com) Domain1.com 托管 tomcatapp1、tomcatapp2 Domain2.com 托管 tomcatapp1、tomcatapp2、tomcatapp3。 Domain2.com 托管 tomcatapp4、tomcatapp5、tomcatapp6、tomcatapp1。
这也可以包括子域。 Subdomain1.Domain1.com (tomcatapp4, tomcatapp5, tomcatapp6, tomcatapp1)
所有域都在单个 IP 上,Apache 端口为 80,tomcat 端口为 8080。问题是我如何实现这一目标?
我从 Apache 上的 VirtualHosts 开始,其中每个域都指向一个目录(在本例中是 Domain1.com、Domain2.com)。但是,当我想在每个域中引入多个应用程序时,我遇到了困难。
如果有人可以建议或指出讨论这方面的适当文档,我们将不胜感激。
最佳答案
不可能有多个套接字绑定(bind)到同一个 IP 地址,监听同一个端口(在您的示例中为 8080)。这不是 TomCat 或 Apache 的限制,而是 IP 网络的一般特性。
您有几个选择:
使用不同的端口设置每个 TomCat 应用程序,并将每个子域的 Apache 虚拟主机路由到其中一个端口
在盒子上提供多个 IP 地址,让每个 TomCat 应用监听同一个端口,但每个应用只绑定(bind)到一个不同的 IP 地址
在不同的物理主机上运行应用程序(同样每个都有自己的 IP 地址)
这三者基本上归结为同一个概念:绑定(bind)每个服务器应用程序以监听不同的端口,然后根据主机名、映射端口 80 将请求从代理(在本例中为 Apache)路由到每个服务器外部到本地端口(比如 8081、8082、8083 等)
最容易配置的是选项#1
关于apache - 具有单个 IP 的多个 tomcat 应用程序 (tomcat 9) 的多个域(Apache Web 服务器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49569165/