1

我在使用 Caddy 代理指令时遇到了一些问题。我的标题都搞砸了,有些不会出现在任何请求中。

demo.raggaer.pw {
    tls email@gmail.com
    proxy / http://localhost:8080 {
        header_upstream Host {>Host}
            header_upstream X-Real-IP {remote}
            header_upstream X-Forwarded-For {remote}
            header_upstream X-Forwarded-Proto {scheme}
    }
}

我希望在 chrome 控制台上看到这些标题。我不。此外,所有标题键都是小写的,这是不是很糟糕?

4

1 回答 1

4

来自Caddy 文档

header_upstream设置要传递给后端的标头。

您使用此指令设置的标头对 Chrome 不可见。当 Chrome 发出请求时,它会将自己的一组标头发送给 Caddy。使用该header_upstream指令,Caddy 可以将自己的标头添加到来自 Chrome 的标头中。后端服务器(在您的情况下http://localhost:8080)可以看到两组标头,但 Chrome 不知道 Caddy 做了什么。

此外,您可能希望使用{host}而不是{>Host}. 这种方式可能更可靠一些。

最后,您看到小写标题键的原因是因为 Chrome 使用 HTTP/2 与 Caddy 通信,其中所有标题键都是小写的。从HTTP/2 规范

标头字段名称必须在 HTTP/2 中编码之前转换为小写。

于 2017-04-24T23:20:28.900 回答