我尝试为多个域设置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
请帮我解决这个问题。
先谢谢。
答案 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!