gpt4 book ai didi

windows - 使用多个具有 80 端口的 tomcat 实例

转载 作者:可可西里 更新时间:2023-11-01 09:30:36 24 4
gpt4 key购买 nike

我有三个 tomcat 实例用于三个不同的应用程序。他们在一台机器上使用 8080,8081,8082 端口。如何更改配置以便用户能够使用不同的主机名从 80 端口访问?我在我的机器上安装了一个 Apache,并尝试使用以下教程对其进行配置:How to load balance Tomcat 5.5 with Apache on Windows直到负载均衡点开始。我有基于本教程的问题。我的网络应用程序在所有 tomcat 实例中都位于 webapps/ROOT 下。我在 httpd.conf 中有这个配置:

<IfModule jk_module>
JkWorkersFile D:\containters\_tomcat_backend\conf\workers.properties
JkShmFile D:\containters\_tomcat_backend\logs\mod_jk.shm
JkLogFile D:\containters\_tomcat_backend\logs\mod_jk.log
JkLogLevel debug
JkMount / worker1
JkMount / worker2
</IfModule>

当我从命令提示符运行 httpd.exe 时,我得到了警告:

[warn] NameVirtualHost *:80 has no VirtualHosts

让我的应用程序使用 80 端口的方法是否正确?我该如何配置此警告?

最佳答案

对于您的场景,您不需要负载平衡。在您的 httpd.conf 中,您应该为要使用的主机名定义 3 个虚拟主机(如 here 所述)。在每个 VirtualHost 指令中,插入一个JkMount 用于在您的 workers.properties 中定义的工作人员,例如:

JkMount /* worker1
...

# same for worker2 and worker3 in the other virt. hosts

现在是 workers.properties:

...
worker.list = worker1, worker2, worker3

worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.type=ajp13

worker.worker2.port=8010
worker.worker2.host=localhost
worker.worker3.type=ajp13

worker.worker3.port=8011
worker.worker3.host=localhost
worker.worker3.type=ajp13

注意:我使用的端口与您指定的不同,因为 Apache 和 Tomcat 之间的通信是通过 AJP 运行的。 .最后,在每个 tomcat 的 server.xml 中添加一个匹配的 AJP 连接器:

<Connector port="8009" protocol="AJP/1.3" />

参见 this更多细节。您提到的警告似乎是由不完整的虚拟主机配置引起的。是否还没有定义 VirtualHost 实例?

编辑:如果您不喜欢那么多配置,您也可以使用 Apache 作为代理并通过 ProxyPass/ProxyPassReverse 指令。

关于windows - 使用多个具有 80 端口的 tomcat 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12128761/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com