Перенаправление HTTPS на Caddy-сервере вызывает «слишком много перенаправлений» - PullRequest
0 голосов
/ 05 февраля 2019

Мой веб-хост уже предоставляет SSL, настроенный в моем домене, поэтому я хочу использовать сервер Caddy для перенаправления HTTP-трафика на HTTPS, используя «Перенаправление только в том случае, если пересылаемый протокол - HTTP» пример из документации .Проблема в том, что браузер не может отобразить страницу моего конфига.Переход к URL-адресу показывает ошибку:

Страница перенаправляется неправильно.Произошла ошибка при подключении к ****.Эта проблема иногда может быть вызвана отключением или отказом принимать куки.(Firefox)

Эта страница не работает **** перенаправлял вас слишком много раз.Попробуйте очистить ваши куки.ERR_TOO_MANY_REDIRECTS (Chrome)

Это мой Caddyfile

0.0.0.0:{$PORT} {
  bind {$ADDRESS}
  proxy / 0.0.0.0:{$API_PORT}
  redir 301 {
    if {>X-Forwarded-Proto} is http
    /  https://{host}{uri}
  }
}

Мой хост предоставляет $ PORT = 8080 в качестве основной точки входа для веб-трафика, поэтому я запустил приложение NodeJS для прослушивания$ API_PORT = 9090.Я ожидаю, что Caddy получает весь трафик через порт 0.0.0.0:8080 и перенаправляет все не-HTTPS-запросы в мое приложение NodeJS через порт 0.0.0.0:9090.Мне нравится эта идея, потому что я предпочел бы не использовать сетевую логику в приложении, но, возможно, я ошибаюсь в этом.

Caddy и NodeJS находятся на одной машине.

...