我有一个带有mod_proxy和wildfly(apache 224和wildfly 9)的apache负载均衡器。
我在wildfly的域中有4台服务器,负载均衡器可以正常运行“hello world”应用程序,在平衡器管理器中,我可以看到请求如何发送到每台服务器。
问题是,当我使用具有一些REST Web服务的应用程序时,我发送带有GET方法的请求和一些用于身份验证的标头,并且不知何故,当我通过加载访问它时,应用程序正在响应错误平衡器,但如果我直接发送到服务器,它可以正常工作。
我的配置如下
<VirtualHost *:80>
ProxyRequests Off
<Proxy balancer://mycluster>
BalancerMember http://localhost:8080/ loadfactor=25
BalancerMember http://localhost:8230/ loadfactor=25
BalancerMember http://localhost:8330/ loadfactor=25
BalancerMember http://localhost:8430/ loadfactor=25
</Proxy>
<Location /balancer-manager>
SetHandler balancer-manager
Order Deny,Allow
Allow from all
</Location>
<Location /test>
Order allow,deny
Allow from all
</Location>
ProxyPass /test balancer://mycluster stickysession=JSESSIONID
我正在使用postman测试并使用get方法和标头发送请求进行身份验证:basic {base64 code}如下:
http://127.0.0.1/test/myproject.ws/myproject/get_list?key=T11108101191&page=1
,这会导致错误。
当我尝试这个时:
http://127.0.0.1:8080/myproject.ws/myproject/get_list?key=T11108101191&page=1
这没关系
当我尝试上述操作时,但使用post方法时,会出现与负载均衡器相同的错误。
知道我做错了什么?
PS:我已经尝试过放入项目的WEB-INF / web.xml,但我仍然遇到同样的错误。
答案 0 :(得分:1)
感谢Dusan Bajic,他看到了我遇到的问题。在平衡器成员中,我用&#34; /&#34;完成了路线。当我使用ProxyPass时,我开始使用&#34; /&#34;,复制该字符。不知何故,使用helloworld应用程序它可以正常工作,但是当我传递参数时,它失败了。
新配置如下:
<VirtualHost *:80>
ProxyRequests Off
<Proxy balancer://mycluster>
BalancerMember http://localhost:8080 loadfactor=25
BalancerMember http://localhost:8230 loadfactor=25
BalancerMember http://localhost:8330 loadfactor=25
BalancerMember http://localhost:8430 loadfactor=25
</Proxy>
<Location /balancer-manager>
SetHandler balancer-manager
Order Deny,Allow
Allow from all
</Location>
<Location /test>
Order allow,deny
Allow from all
</Location>
ProxyPass /test balancer://mycluster stickysession=JSESSIONID
</VirtualHost>