Назад | Перейти на главную страницу

HAProxy: пересылка внешнего запроса на внешний сервер

Я хочу перенаправлять запросы на внешний сервер, когда кто-то запрашивает подкаталог в моем домене.

У меня следующая конфигурация, но я все еще получаю 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