我的网络主机已经提供了在我的域上配置的 SSL,所以我想使用 Caddy 服务器将 HTTP 流量重定向到 HTTPS,使用文档中的“仅当转发的协议是 HTTP 时才重定向”示例。问题是浏览器无法呈现我的球童配置页面。转到 URL 显示错误:
页面未正确重定向。连接到 **** 时发生错误。此问题有时可能是由禁用或拒绝接受 cookie 引起的。(火狐)
此页面无法正常工作 **** 将您重定向了太多次。尝试清除您的 cookie。ERR_TOO_MANY_REDIRECTS(铬)
这是我的球童档案
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 请求重定向到我在端口上的 NodeJS 应用程序0.0.0.0:9090
。我喜欢这个想法,因为我不想将网络逻辑放在应用程序中,但也许我错了。
Caddy 和 NodeJS 在同一台机器上。