我的Web主机已经提供了在我的域上配置的SSL,因此我想使用Caddy服务器使用“仅当转发的协议是HTTP时才重定向” example from the docs将HTTP通信重定向到HTTPS。问题是浏览器无法呈现我的球童配置页面。转到URL会显示错误:
页面未正确重定向。与****的连接过程中发生错误。 有时可能是由于禁用或拒绝接受Cookie引起的。 (Firefox)
此页面无法正常工作****将您重定向了太多次。 尝试清除您的cookie。 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作为Web流量的主要入口点,因此我启动了NodeJS应用以监听$ API_PORT = 9090。我的期望是Caddy在端口0.0.0.0:8080
上收到所有流量,并将所有非HTTPS请求重定向到端口0.0.0.0:9090
上的我的NodeJS应用程序。我喜欢这个主意,因为我不想在应用程序中加入网络逻辑,但也许我错了。
Caddy和NodeJS在同一台计算机上。