球童 header 上游
Caddy header upstream
我在使用 Caddy 代理指令时遇到了一些问题。我的 header 都乱七八糟了,有些在任何请求下都不会出现。
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 控制台上看到那些 header。我不。此外,所有 header 键都是小写的,这是不是很糟糕?
来自Caddy docs:
header_upstream sets headers to be passed to the backend.
您使用此指令设置的 header 对 Chrome 不可见。当 Chrome 发出请求时,它将自己的一组 header 发送给 Caddy。使用 header_upstream
指令,Caddy 可以将自己的 header 添加到来自 Chrome 的指令中。后端服务器(在您的情况下 http://localhost:8080
)可以看到两组 header,但是 Chrome 不知道 Caddy 做了什么。
此外,您可能希望使用 {host}
而不是 {>Host}
。这样可能更可靠一些。
最后,您看到小写 header 键的原因是因为 Chrome 正在使用 HTTP/2 与 Caddy 通信,其中所有 header 键都是小写的。来自 HTTP/2 spec:
Header field names MUST be converted to lowercase prior to their
encoding in HTTP/2.
我在使用 Caddy 代理指令时遇到了一些问题。我的 header 都乱七八糟了,有些在任何请求下都不会出现。
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 控制台上看到那些 header。我不。此外,所有 header 键都是小写的,这是不是很糟糕?
来自Caddy docs:
header_upstream sets headers to be passed to the backend.
您使用此指令设置的 header 对 Chrome 不可见。当 Chrome 发出请求时,它将自己的一组 header 发送给 Caddy。使用 header_upstream
指令,Caddy 可以将自己的 header 添加到来自 Chrome 的指令中。后端服务器(在您的情况下 http://localhost:8080
)可以看到两组 header,但是 Chrome 不知道 Caddy 做了什么。
此外,您可能希望使用 {host}
而不是 {>Host}
。这样可能更可靠一些。
最后,您看到小写 header 键的原因是因为 Chrome 正在使用 HTTP/2 与 Caddy 通信,其中所有 header 键都是小写的。来自 HTTP/2 spec:
Header field names MUST be converted to lowercase prior to their encoding in HTTP/2.