2015-12-08 61 views
0

我有HAProxy(v1.5.8)作为负载平衡器与keepalived(v1.2.2),以维持高可用性。本地网络上的另一台计算机上也有多台Jetty服务器作为带有Web应用程序的后端服务器。HAProxy不转发请求到后端服务器

我现在的问题是:我可以通过它访问网络应用IP(下面的代码中的zzzz),但是当我尝试访问VIP(下面的代码中的yyyy)时,我得到一个连接拒绝错误。我没有任何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文件是haproxy.cfg定义的一样:

virtual_ipaddress { 
      y.y.y.y 
} 

在统计网我得到的下一个结果:

HAProxy Stats

后这一点,我相信haproxy无法到达后端,因为它们显示为前端服务器。我错过了conf文件中的某些东西?

谢谢

回答

0

没有,“前台”和“后台”是总结行不是标题。服务器在两者之​​间是正常的。

您的后端已关闭,因为它将404返回给haproxy。你需要让/check.txt返回一个有效的响应。

+0

我设法让服务器使用apache测试服务器返回有效的响应,但重定向仍然失败。 如果我去的Apache IP我可以得到索引文件好,但如果我去虚拟IP haproxy正在侦听,我得到主机无法访问的错误。 'ip addr sh eth0'告诉我IP正在工作。你知道为什么它可能无法重定向请求吗? 谢谢 – CRM