Мой веб-хост уже предоставляет 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 находятся на одной машине.