diff options
author | Matthew Holt <mholt@users.noreply.github.com> | 2020-02-27 10:20:13 -0700 |
---|---|---|
committer | Matthew Holt <mholt@users.noreply.github.com> | 2020-02-27 10:20:13 -0700 |
commit | 86b785e51cccd5df18611c380962cbd4faf38af5 (patch) | |
tree | bce04440795b9e0131d026b3a01787155f2a1459 /modules/caddyhttp/reverseproxy | |
parent | f6ae0925075f3b1794a699f3ac47845000f7967b (diff) |
reverse_proxy: Add 'transparent' Caddyfile subdirective (closes #2873)
Diffstat (limited to 'modules/caddyhttp/reverseproxy')
-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()) } |