凯迪头上游

时间:2017-04-24 22:25:14

标签: caddy

我正面临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控制台上看到这些标题。我不。所有标题键都是小写的,这有什么不好吗?

1 个答案:

答案 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中编码。