diff options
-rw-r--r-- | modules/caddyhttp/reverseproxy/caddyfile.go | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/modules/caddyhttp/reverseproxy/caddyfile.go b/modules/caddyhttp/reverseproxy/caddyfile.go index d08e7f1..a2b1898 100644 --- a/modules/caddyhttp/reverseproxy/caddyfile.go +++ b/modules/caddyhttp/reverseproxy/caddyfile.go @@ -411,6 +411,21 @@ func (h *Handler) UnmarshalCaddyfile(d *caddyfile.Dispenser) error { } h.TransportRaw = caddyconfig.JSONModuleObject(rt, "protocol", name, nil) + case "transparent": + if d.NextArg() { + return d.ArgErr() + } + if h.Headers == nil { + h.Headers = new(headers.Handler) + } + if h.Headers.Request == nil { + h.Headers.Request = new(headers.HeaderOps) + } + // The X-Forwarded-For header is always appended to by default, directly in the reverse proxy code + headers.CaddyfileHeaderOp(h.Headers.Request, "Host", "{http.request.hostport}", "") + headers.CaddyfileHeaderOp(h.Headers.Request, "X-Real-Ip", "{http.request.remote}", "") + headers.CaddyfileHeaderOp(h.Headers.Request, "X-Forwarded-Proto", "{http.request.scheme}", "") + default: return d.Errf("unrecognized subdirective %s", d.Val()) } |