0

我有 Apache 服务器的集群设置。在这之后,我有 2 个由 apache 负载平衡的 Jboss 实例。

配置看起来有点像下面

   <VirtualHost *:1111>
    ServerAdmin admin@example.com
    ServerName www.example.com

    DocumentRoot "/apps"
    ErrorLog "logs/https.www.example.com.-error_log"
    TransferLog "logs/https.www.example.com-access_log"
    LogLevel warn


    <Directory "/apps">
            Options -Indexes +FollowSymLinks
            AllowOverride None
            Order allow,deny
            Allow from all
    </Directory>


    SSLProxyEngine On
    SSLProxyVerify On


    SSLProxyMachineCertificateFile "/apps/apache/conf/ssl/int/proxy.pem"
    SSLProxyCACertificateFile "/apps/apache/conf/ssl/int/cert.pem"


    RewriteEngine On

    Header set Cache-Control "max-age=60, public"

   <Proxy balancer://2node-aa>

            BalancerMember https://app01:8089 route=node1
            BalancerMember https://app02:8089 route=node2

    ProxyPreserveHost On

    ProxyPass /aa balancer://2node/aa stickysession=JSESSIONID|jsessionid
    ProxyPass /static balancer://2node/static stickysession=JSESSIONID|jsessionid

    ProxyPassReverse /aa balancer://2node/aa
    ProxyPassReverse /static balancer://2node/static



    ProxyPass /1/aa https://app01:8089/aa
    ProxyPass /2/aa https://app02:8089/aa

    ProxyPassReverse /1/aa https://app01:8089/aa
    ProxyPassReverse /2/aa https://app02:8089/aa

    ProxyPass /bb  balancer://2node/rest stickysession=JSESSIONID|jsessionid
    ProxyPassReverse /bb balancer://2node/bb

    </VirtualHost>

在 url 访问 url 的某些部分我希望它从第二个节点即 jboss 的 node2 路由。

例如,如果我正在访问http://www.example.com/aa/login/login.jsp,我需要这个请求仅由 node2 处理app02

请求的其余部分应作为正常访问进行负载平衡。我如何设置 apache 来做到这一点?

我已经尝试了很多rewrite,到目前为止都没有<Location>ProxyPassMatch

请帮忙。提前致谢。

4

1 回答 1

0

我在解决问题的配置文件中使用了以下语句。

<Proxy balancer://2node-aa>

BalancerMember https://app02:8080 route=node2

</Proxy>

RewriteRule ^/aa/login/(.*)$ balancer://2node-aa%{REQUEST_URI} [P,QSA,L]

这个链接帮助我。

具有多个虚拟主机 url 重定向的 apache httpd mod_proxy 负载平衡

-谢谢

于 2013-12-01T16:12:53.810 回答