![HAProxy:将前端请求转发到外部后端服务器](https://linux22.com/image/723138/HAProxy%EF%BC%9A%E5%B0%86%E5%89%8D%E7%AB%AF%E8%AF%B7%E6%B1%82%E8%BD%AC%E5%8F%91%E5%88%B0%E5%A4%96%E9%83%A8%E5%90%8E%E7%AB%AF%E6%9C%8D%E5%8A%A1%E5%99%A8.png)
当有人请求我的域中的子目录时,我想将请求转发到外部服务器。
我有以下配置但仍然收到 503:
resolvers dns
nameserver google-1 8.8.8.8:53
nameserver google-2 8.8.4.4:53
hold valid 1s
frontend http-in
maxconn 1048576
bind *:80
bind *:443 ssl crt /path/to/ssl
redirect scheme https code 301 if !{ ssl_fc }
acl is_dashboard_uri path_beg /dashboard
use_backend surge if is_dashboard_uri
default_backend servers
backend surge
option forwardfor
balance leastconn
server surge my-path.surge.sh:443 check resolvers dns
我不确定我在这里做错了什么。我可以访问 DNS 服务器和后端路径。
编辑:这是日志:
Jun 12 21:32:05 ion-matchmaker-load-balancer haproxy[12612]: 73.70.169.76:54627 [12/Jun/2018:21:32:05.127] http-in~ surge/surge 0/59/-1/-1/+79 503 +213 - - sC-- 4/4/0/0/3 0/0 "GET /dashboard HTTP/1.1"
答案1
sC--
当后端无法及时满足请求时,日志中就会出现这种情况。
在与服务器的连接完成之前出现“连接超时”错误。当在 HTTP 模式下发生这种情况时,此处的状态代码可能是 503 或 504。
我增加了后端的超时时间,这样服务器就有足够的时间来处理请求。
backend surge
timeout connect 5000