我将HAProxy(v1.5.8)作为带有keepalived(v1.2.2)的负载均衡器来维持高可用性。我在本地网络上的另一台机器上也有几台Jetty服务器作为带有webapp的后端服务器。
我遇到的问题是:我可以通过IP(下面的代码中的z.z.z.z)访问Web应用程序,但是当我尝试通过VIP访问(y.y.y.y在下面的代码中)时,我收到连接拒绝错误。我没有任何iptables规则集(Debian 7)。
我的haproxy.cfg文件就是这个:
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
chroot /var/lib/haproxy
#stats socket /run/haproxy/admin.sock mode 660 level admin
#stats timeout 30s
maxconn 4096
user haproxy
group haproxy
defaults
log global
mode http
option httplog
option dontlognull
retries 3
option redispatch
maxconn 2000
timeout connect 5000
timeout client 50000
timeout server 50000
errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
errorfile 504 /etc/haproxy/errors/504.http
listen stats x.x.x.x:9000
mode http
balance
option httplog
timeout client 5000
timeout connect 4000
timeout server 30000
stats uri /haproxy_stats
stats realm HAProxy/Statistics
stats auth user:passwd
stats admin if TRUE
listen webfarm y.y.y.y:8080
mode http
stats enable
stats auth someuser:somepassword
balance roundrobin
cookie JSESSIONID prefix
option httpclose
option forwardfor
option httpchk HEAD /check.txt HTTP/1.0
server webA z.z.z.z:9400 check
在keepalived conf文件中,我定义了我将使用的VIP(与haproxy.cfg中定义的相同:
virtual_ipaddress {
y.y.y.y
}
在统计网站中,我得到了下一个结果:
在此之后,我认为haproxy无法进入后端,因为它们显示为前端服务器。我在conf文件中遗漏了什么?
谢谢
答案 0 :(得分:0)
不,'前端'和'后端'是摘要行而不是标题。服务器在两者之间是正常的。
您的后端已关闭,因为它正在向404返回haproxy。您需要使/check.txt返回有效的响应。
答案 1 :(得分:0)
我建议您仅禁用检查,直到您对HAProxy整体感到更满意为止。 ID还建议您打开“统计信息”页面,这将使您更好地可视化HAProxy看到的内容。见下文:
###########################################
#
# HAProxy Stats page
#
###########################################
listen stats
bind *:9090
mode http
maxconn 10
stats enable
stats hide-version
stats realm Haproxy\ Statistics
stats uri /
stats auth -----:-----