首页 文章

HAProxy不将请求转发到后端服务器

提问于
浏览
0

我将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 Stats

在此之后,我相信haproxy无法进入后端,因为它们显示为前端服务器 . 我在conf文件中遗漏了什么?

谢谢

1 回答

  • 0

    不,'前端'和'后端'是摘要行而不是 Headers . 服务器在两者之间是正常的 .

    您的后端已关闭,因为它将返回404到haproxy . 您需要使/check.txt返回有效的响应 .

相关问题