HA代理将不会负载平衡我的networking请求。 我做错了什么?

我终于把HA Proxy设置成了我想要的方式。 但是,它不负载平衡它收到的networking请求。 所有请求正在转发到群集中的第一个服务器。 我将在下面粘贴我的configuration – 如果有人能看到我可能出错的地方,我会很感激。

这是我第一次尝试在* nix环境中configurationWeb服务器。

首先,我有与apache集群中的第一个服务器在同一主机上运行的HA Proxy。 我们正在将这些服务器转移到虚拟机上,并且它们将拥有不同的虚拟主机,但是我现在想让这个虚拟主机运行。

两个Web服务器都在接收健康状况检查,并正确回报。 haproxy?stats页面正确报告上下的服务器。 我已经通过改变被检查文件的名字来testing这个。 我还没有把任何负载到这些服务器呢。 我刚刚打开了几个选项卡上的url(隐私浏览),也有几个同事点击了url。 所有的stream量都转到WEB1。 我平衡​​不正确?

global maxconn 10000 nbproc 8 pidfile /var/run/haproxy.pid log 127.0.0.1 local0 debug daemon defaults log global mode http retries 3 option redispatch maxconn 5000 contimeout 5000 clitimeout 50000 srvtimeout 50000 listen WEBHAEXT :80,:8443 mode http cookie sessionbalance insert indirect nocache balance roundrobin option httpclose option forwardfor except 127.0.0.1 option httpchk HEAD /health_check.txt stats enable stats auth rah:rah server WEB1 10.90.2.131:81 cookie WEB_1 check server WEB2 10.90.2.130:80 cookie WEB_2 check 

编辑:

我使用ab(apache benchmarking)成功地运行了testing,负载平均分配到两个节点上。 我不知道我以前做错了什么,但上面的configuration工作。

你如何检查所有的请求去一台服务器? 正如您configurationHAProxy一样,您正在使用粘性会话,HAProxy会在每个客户端上设置一个cookie,将其指向每个请求的相同后端节点。 如果您只是在单个浏览器中重新加载,则会看到每个请求都转到相同的后端。

我刚刚尝试了您提供的确切configuration。 首先,健康检查对我不起作用,我不得不添加“health_check.txt”(haproxy-1.4.10)的“/”。

然而,负载平衡工作正常。 每次我closures并重新打开我的浏览器时,我都会被ping到另一台服务器。

你有一个正在testing的实时应用程序(使用它自己的cookies),还是只是一个testing页?

尝试从cookie删除insert语句。

以下为[ insert ]的文档:

如果客户端下次连接到同一台服务器时有所有需要的信息,则不会插入其他的cookie。

所以,所有的请求都可能通过这个cookie获得他们的WEB1分配 ,然后在每个请求中遵循这个方向。

PS:你必须在服务器statementcookie参数设置相同的名字。

 server WEB1 10.90.2.131:81 cookie WEB_LB check server WEB2 10.90.2.130:80 cookie WEB_LB check 

您是否尝试删除涉及基于cookie的持久性的每个选项? 怎么了?

尝试将WEB_1更改为WEB1:

 server WEB1 10.90.2.131:81 cookie WEB1 check server WEB2 10.90.2.130:80 cookie WEB2 check