我有Apache服务器的集群设置。在这之后我有2个Jboss实例,由apache负载平衡。
配置看起来有点像下面的
<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路由。
e.g。如果我正在访问http://www.example.com/aa/login/login.jsp
,我需要此请求仅由node2 app02
处理。
其余请求应将负载平衡为正常访问。 我如何设置apache来做它?
我已经尝试了很多rewrite
,<Location>
和ProxyPassMatch
到目前为止还没有。
请帮助。提前谢谢。
答案 0 :(得分:0)
我在配置文件中使用了以下语句来解决问题。
<Proxy balancer://2node-aa>
BalancerMember https://app02:8080 route=node2
</Proxy>
RewriteRule ^/aa/login/(.*)$ balancer://2node-aa%{REQUEST_URI} [P,QSA,L]
此链接可以帮助我。
apache httpd mod_proxy load balancing with multiple virtual hosts url redirection
-Thanks