我正面临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控制台上看到这些标题。我不。所有标题键都是小写的,这有什么不好吗?
答案 0 :(得分:4)
来自Caddy docs:
header_upstream 设置要传递给后端的标头。
您使用此指令设置的标头对Chrome不可见。当Chrome发出请求时,它会将自己的标头集发送给Caddy。使用header_upstream
指令,Caddy可以将自己的标头添加到Chrome中。后端服务器(在您的情况下为http://localhost:8080
)可以看到两组标头,但Chrome不知道Caddy做了什么。
此外,您可能希望使用{host}
代替{>Host}
。这样可能会更加可靠。
最后,您看到小写标题键的原因是因为Chrome正在使用HTTP / 2与Caddy通信,其中所有标题键都是小写的。来自HTTP/2 spec:
标题字段名称必须在它们之前转换为小写 在HTTP / 2中编码。