AJP Connector Apache-Tomcat 与 php 和 java 应用程序

AJP Connector Apache-Tomcat 与 php 和 java 应用程序

我对代理和 ajp 模块有疑问。

我的机器上有一个 Apache Web 服务器和一个 Tomcat servlet 容器。

Tomcat 上正在运行我的 java web 应用程序。

在 Apache 上我有一些服务,我可以通过这种方式调用它们:

http://myhos/service1
http://myhos/service2
http://myhos/service3

我将配置一个 ajp 连接器,以便从 Apache 调用我的 tomcat web 应用程序。我将使用某种方法来http://myhost 调用 Tomcat web 应用程序。

因此,我以这种方式配置了我的 apache..并且我得到了我想要的:我可以使用http://myHostApache 来可视化 Tomcat webApp。

<VirtualHost *:80>

    ProxyRequests off
    ProxyPreserveHost On

    ServerAlias myserveralias
    ErrorLog logs/error.log
    CustomLog logs/access.log common

    <Proxy *>
      Order deny,allow
      Allow from all
    </Proxy>

     ProxyPass /server-status !
     ProxyPass /balancer-manager !

    ProxyPass / balancer://mycluster/ stickysession=JSESSIONID nofailover=Off maxattempts=1

    <Proxy balancer://mycluster>
       BalancerMember ajp://myIp:8009  min=10 max=100 route=portale loadfactor=1
       ProxySet lbmethod=bytraffic
    </Proxy>

    <Location /balancer-manager>
        SetHandler balancer-manager
        Order deny,allow
        Allow from localhost
    </Location>


    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common
    LogFormat "%{Referer}i -> %U" referer
    LogFormat "%{User-agent}i" agent

</VirtualHost>

但是,现在我无法使用 apache 服务:

如果我使用,http://myhos/service1则会出现错误,因为 apache 尝试在我的 tomcatWebApp 上搜索 service1。

有办法解决吗?

答案1

您可以使用!排除语法来防止 Apache 服务被代理到 Tomcat,就像您已经对server-status和所做的那样balancer-manager

ProxyPass /service1 !
ProxyPass /service2 !
ProxyPass /service3 !

相关内容