多个域的HAproxy反向代理 - 503服务不可用

时间:2016-06-23 18:41:17

标签: reverse-proxy haproxy

我尝试为多个域设置HAproxy - 反向代理。但是当我在浏览器中尝试使用HAProxy网址时,它显示“503 - 服务不可用”。

我试图设置这个,我有四个域 - 当任何一个命中服务器url时,请求必须去特定域属于请求。

在我的haproxy配置文件下面。

log         127.0.0.1 local2
chroot      /var/lib/haproxy
pidfile     /var/run/haproxy.pid
maxconn     4000
user        haproxy
group       haproxy
daemon

# turn on stats unix socket
stats socket /var/lib/haproxy/stats

默认

mode                    http
log                     global
option                  httplog
option                  dontlognull
option                  http-server-close
option                  forwardfor
option                  redispatch
retries                 3
timeout http-request    10s
timeout queue           1m
timeout connect         10s
timeout client          1m
timeout server          1m
timeout http-keep-alive 10s
timeout check           10s
maxconn                 3000

前端http-in 绑定*:80

    acl host1 hdr(host) -i xyz.com
    acl host2 hdr(host) -i abc.com
    acl host3 hdr(host) -i ghy.com
    acl host4 hdr(host) -i klm.com

    use_backend xyz if host1
    use_backend abc if host2
    use_backend ghy if host3
    use_backend klm if host4

后端xyz

    mode    http
    balance     roundrobin
    option forwardfor
    server s2 xyz.com:80 check

后端abc

    mode    http
    balance     roundrobin
    option forwardfor
    server s1 abc.com:80 check

后端ghy

    mode    http
    balance     roundrobin
    option forwardfor
    server s4 ghy.com:80 check

backend klm

    mode    http
    balance     roundrobin
    option forwardfor
    server s3 klm.com:443 check

监听网络界面

绑定0.0.0.0:9200

模式http

stats enable

stats uri /

stats realm Strictly \ Private

stats auth admin:admin @ 123

请帮我解决这个问题。

先谢谢。

1 个答案:

答案 0 :(得分:1)

从haproxy获取503 - service unavailable表示后端服务器未正确提供请求 - 如果您检查统计信息页面(例如http://localhost:9200/),服务器将显示为红色(如果服务器运行正常) ,它将以绿色显示;健康的备份服务器将以蓝色显示。

由于您的server行包含check关键字,因此haproxy会定期轮询每个后端服务器以查看服务器是否健康" - 也就是说,如果它返回2xx-3xx HTTP状态(对于http checks)。

您有几种选择:

  • check行删除server - haproxy假定服务器默认可用。
  • check留在server行,但配置httpchk(可以为每个后端执行此操作)。例如: option forwardfor option httpchk HEAD / HTTP/1.1\r\nUser-Agent:\ HAProxy\r\nHost:\ server s2 xyz.com:80 check

不要忘记在更改配置后重新加载/重启haproxy!