Я хочу перенаправлять запросы на внешний сервер, когда кто-то запрашивает подкаталог в моем домене.
У меня следующая конфигурация, но я все еще получаю 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"
В sC--
в логах возникает, когда бэкэнд не может своевременно выполнить запрос.
Штрих "тайм-аут подключения" перед тем, как соединение с сервером может завершиться. Когда это происходит в режиме HTTP, скорее всего, здесь будет код состояния 503 или 504.
Я увеличил тайм-аут на бэкэнде, и это дало серверу достаточно времени для обработки запроса.
backend surge
timeout connect 5000