提问者:小点点

配置Apachemod_jkAJP连接器以指向2个不同端口上的tomcat应用程序


我正在尝试配置我的(内部)测试服务器以运行2个tomcat应用程序(实际上是并排运行相同的2个版本)。我们使用Apache2.4mod_jk

所以目前它适用于一个应用程序

http://LOCALSERVERNAME

我的更改有它的工作(相同的应用程序)

   1) http://LOCALSERVERNAME

   2) http://LOCALSERVERNAME:81

但我希望它继续为1工作,并为2运行不同的应用程序。

所以我修改了httpd. conf以侦听两个端口

Listen 80
Listen 81

使用现有的jkMount设置此

JkMount /* worker1
JkMount /localhost:80 worker1
JkMount /localhost:80/* worker1
JkMount /127.0.0.1:80 worker1
JkMount /127.0.0.1:80/* worker1

在两个端口(而不是在其他端口)上打开tomcat应用程序,以便侦听器指令正常工作。然而,我认为这只是使用JkMount/*worker1。

我在此期间修改了这一点,将其注释出来并尝试以下两个选项(分别)

#JkMount /* worker1
#JkMount /*:80/* worker1
JkMount /194.66.181.17:80/* worker1

我已将servername条目设置为本地服务器名称

ServerName LOCALSERVERNAME

这是给我一个身份验证所需的登录弹出窗口

我已经修改了我继承的worker.properties,在浏览解决方案时,我想我可能误解了它的用途。它使用了一个平衡器(与前面提到的相同),我修改了它,以为我会用它来为tomcat应用程序提供不同的端口(8009

worker.list=worker1, worker2

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

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

我的httpd-vhost. conf文件看起来像这样,尽管我在第二个条目中尝试了很多东西,但我认为它们从未被拾取过-我认为我最接近工作的时候是两个端口80

<VirtualHost [IP-address]:80 localhost:80>
    servername LOCALSERVERNAME
    DocumentRoot "E:/Production/Apache/htdocs"
    <Directory "E:/Production/Apache/htdocs"> 
        Options +FollowSymLinks
        AllowOverride All
    </Directory>

    JkOptions     +ForwardURICompatUnparsed
    ProxyRequests off
    JkMount /* worker1
</VirtualHost>


<VirtualHost [IP-address]:81>
    servername LOCALSERVERNAME
    DocumentRoot "E:/Production/Apache/dummy"
</VirtualHost>

所以…我的问题是,我可以在本地域服务器上使用apache来运行2个使用mod_jk的嵌入式tomcat应用程序吗?如果是这样,有人能指出我的配置哪里出错了吗?我假设我在某个地方走错了方向,而不是需要一个小的调整?


共1个答案

匿名用户

我宁愿通过同一个80端口使用两个虚拟主机,即使只是出于概念原因。

但是这里的问题主要是你的配置不起作用,我想是因为我认为(或者至少我从未见过它以这种方式工作)你配置指令JkMount/localhost:80worker1的方式不起作用。正如你所猜测的,我很确定在你的第一个配置中唯一有效的规则是JkMount/*worker1

所以我的选择是创建两个基于名称的虚拟主机,并为每个主机设置JkMount内部,或多或少是这样的:

<VirtualHost *:80>
    servername prod.LOCALSERVERNAME
    DocumentRoot "E:/Production/Apache/htdocs"
    <Directory "E:/Production/Apache/htdocs"> 
        Options +FollowSymLinks
        AllowOverride All
    </Directory>

    JkOptions     +ForwardURICompatUnparsed
    ProxyRequests off
    JkMount /* worker1
</VirtualHost>


<VirtualHost *:80>
    servername dummy.LOCALSERVERNAME
    DocumentRoot "E:/Production/Apache/dummy"

    JkOptions     +ForwardURICompatUnparsed
    ProxyRequests off
    JkMount /* worker2
</VirtualHost>