我使用 Caddy 作为反向代理,因此我只需要在我的网关中打开 2 个端口(一个用于 http,一个用于 https)。
我更喜欢使用80
and 443
,但我的 UniFi USG(网关)会干扰 443 并破坏 SSL。如果我选择另一个端口并为此添加一个端口转发,它工作正常......但这对于我需要的每条服务器路由都是不合理的,因为我的防火墙会变成瑞士奶酪。
所以反向代理是完美的。我将只打开 2 个端口:88
然后444
转到反向代理。在 Caddy 中,我可以轻松地在 Caddyfile 中设置目标端口:
// DNS points to the gateway's IP
mysubdomain.mydomain.com {
reverse_proxy {
to https://192.168.1.IP:443
transport http {
read_buffer 4096
}
{
}
问题
在我的第一次尝试中,我的 SSL 不起作用(感谢代理修改的标头),所以我查看了Caddy Reverse Proxy Headers文档,发现他们确实修改了 2 个标头:
- 它添加或扩充
X-Forwarded-For
标题字段。 - 它设置
X-Forwarded-Proto
标题字段。
我使用什么值以便 Caddy 传递原始值,或者不添加任何内容?
当前配置
这是我目前拥有的,我应该使用什么来确保不更改或添加 X-Forwarded 标头?
mysubdomain.mydomain.com {
reverse_proxy {
to https://192.168.1.IP:443
transport http {
read_buffer 4096
}
{
header_up Host {http.request.host}
header_up X-Real-IP {http.request.remote.host}
header_up X-Forwarded-For { ?? }
header up X-Forwarded-Port { ?? }
header_up X-Forwarded-Proto { ?? }
}
跟进问题:除了我设置的设置之外,我还应该使用其他设置吗?
这应该这样做
标记为冗余的是默认的,见 https://github.com/caddyserver/caddy/issues/2873