ProxyPass重定向到相同的路径

问题描述 投票:0回答:1

我有两个管理控制台wildfly,我想通过反向代理访问它们。为此,我在我的httpd反向代理中做了这个conf:

<VirtualHost X.X.X.X:80>
ServerName reverse.com

ProxyPreserveHost On
RewriteEngine On

<Proxy balancer://wildfly-1>
BalancerMember http://wildfly-1.com route=wildfly-1 disablereuse=On keepalive=On retry=20
ProxySet lbmethod=bybusyness
</Proxy>

RewriteRule ^/wildfly-1-console/?$ / [R]
ProxyPass / balancer://wildfly-1/ stickysession=JSESSIONID nofailover=Off
ProxyPassReverse / balancer://wildfly-1/

<Proxy balancer://wildfly-2>
BalancerMember http://wildfly-2.com route=wildfly-2 disablereuse=On keepalive=On retry=20
ProxySet lbmethod=bybusyness
</proxy>

RewriteRule ^/wildfly-2-console/?$  / [R]
ProxyPass / balancer://wildfly-2/ stickysession=JSESSIONID nofailover=Off
ProxyPassReverse / balancer://wildfly-2/

</VirtualHost>

我的问题是,当我输入http://X.X.X.X:80/wildlfy1或2它工作时,rewriterules完美地工作并重定向到管理控制台,但仅限于第一个控制台。我认为问题在于我的rewriterules,它重定向到相同的路径“/”,所以我的反向忽略了第二次重定向。我怎么解决这个问题?

谢谢。

apache mod-rewrite wildfly reverse-proxy proxypass
1个回答
0
投票

这是长期或评论。这就是我的意思:

<VirtualHost X.X.X.X:80>
    ServerName reverse.com

    ProxyPreserveHost On
    RewriteEngine On

    ProxyPass        /wildfly-1-console http://wildfly-1.com
    ProxyPassReverse /wildfly-1-console http://wildfly-1.com

    ProxyPass        /wildfly-2-console http://wildfly-2.com
    ProxyPassReverse /wildfly-2-console http://wildfly-2.com
</VirtualHost>

这样,通过代理将heach URL提供给另一个站点。请注意,这远不是一个完整的配置,它只是为了展示这个概念。我也无法测试它,因为我现在无法访问Apache。

对于粘性会话,您将平衡器概念应用于单个成员,因此它没有用处。粘性cookie是为了确保您将为每个请求返回相同的实例。这是你要求no1,你得到no1。如果你要求no2,你会得到no2。你不可能要求/wildfly-1-console并被“代理”到http://wildfly-2.com

现在,如果你想在http://wildfly-1.comhttp://wildfly-2.com前面有一个代理网址,这是另一个问题的主题(你的一些研究:-)

© www.soinside.com 2019 - 2024. All rights reserved.