我有两个管理控制台wildlfy,我想通过反向代理访问它们。为此,我在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时,它可以正常工作,重写器可以完美地工作,并重定向到管理控制台,但只适用于第一个控制台。我认为问题出在我的重写器规则上,它重定向到相同的路径"/",所以我的反向操作忽略了第二个重定向。我该如何解决这个问题呢?
谢谢。
发布于 2018-09-10 08:19:29
这是太长或太长的评论。这就是我的意思:
<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>这样,每个URL都是通过代理提供给另一个站点的。请注意,这远不是一个完整的配置,它只是为了展示概念。我也无法测试它,因为我现在无法访问Apache。
至于粘性会话,您将平衡器概念应用于单个成员,因此它没有任何作用。粘性cookie是为了确保每次请求都返回到相同的实例。这是你要的no1,你得到的是no1。如果你请求no2,你得到的是no2。您不可能请求/wildfly-1-console并被“代理”到http://wildfly-2.com。
现在,如果您想要在http://wildfly-1.com和http://wildfly-2.com之前使用一个单独的URL代理,这是另一个问题的主题(好吧,您的一些研究:-)
https://stackoverflow.com/questions/52244600
复制相似问题