以下是Apache2的粘性负载平衡配置。它正确地进行粘性和负载平衡。
<VirtualHost *:80>
<Location "/balancer-manager">
SetHandler balancer-manager
</Location>
ServerName 10.10.87.177
Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
<Proxy "balancer://mycluster">
AddDefaultCharset off
Order deny,allow
allow from all
BalancerMember "ajp://10.10.87.177:8009/myapp" route=node1
BalancerMember "ajp://10.10.87.241:8009/myapp" route=node2
#ProxySet stickysession=ROUTEID
ProxySet stickysession=JSESSIONID|jsessionid
</Proxy>
ProxyPass "/myapp" "balancer://mycluster"
ProxyPassReverse "/myapp" "balancer://mycluster"
</VirtualHost>
但问题是当我遇到http://10.10.87.177/myapp
时,回复正确为home page
。但是当我提交主页时,它的动作是t.jsp,服务器点击url是http://t.jsp?param1=val1
。在这里我失去了上下文 / myapp ,不知道原因。点击网址应为http://10.10.87.177/myapp/t.jsp?param1=val1
请帮我解决问题。
这是html:
<form action="t.jsp">Enter your name: <input type="text" name="name">
<p>
<input type="submit" value="OK">
</form>
如果我正在访问没有负载均衡器的应用程序,它可以正常工作,但是当使用上面配置的负载均衡器时会丢失上下文。
答案 0 :(得分:0)
在代码中进行以下更改:
BalancerMember&#34; ajp://10.10.87.177:8009 / myapp /&#34;路由节点1 = BalancerMember&#34; ajp://10.10.87.241:8009 / myapp /&#34;路线=节点2
ProxyPass&#34; / myapp /&#34; &#34;平衡器:// myCluster中/&#34; ProxyPassReverse&#34; / myapp /&#34; &#34;平衡器:// myCluster中/&#34;
-VV