Reverse-Proxy
如何使用 Caddy 通過反向代理維護 所有標頭
我使用 Caddy 作為反向代理,因此我只需要在我的網關中打開 2 個埠(一個用於 http,一個用於 https)。
我更喜歡使用
80
and443
,但我的 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://mysubdomain.mydomain.com { reverse_proxy localhost:8080 { header_up Host {host} # redundant header_up X-Real-IP {remote} header_up X-Forwarded-For {remote} # redundant header_up X-Forwarded-Port {server_port} # redundant header_up X-Forwarded-Proto {scheme} } }
標記為冗餘的是預設的,見 https://github.com/caddyserver/caddy/issues/2873