当有人请求我的域中的子目录时,我想将请求转发到外部服务器。
我有以下配置但仍然收到 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