@marcel91200 / caddy Mirror · read-only / commits / 86b785e5
Fork 0

Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS

Mirrored from https://github.com/Slazee/caddy.git

Synced Nov 14, 05:15 UTC

reverse_proxy: Add 'transparent' Caddyfile subdirective (closes #2873)

Matthew Holt committed Feb 27, 2020 at 10:20 UTC 86b785e51cccd5df18611c380962cbd4faf38af5
1 file changed +15
modules/caddyhttp/reverseproxy/caddyfile.go
+15
@@ -411,6 +411,21 @@ func (h *Handler) UnmarshalCaddyfile(d *caddyfile.Dispenser) error {
411 }
412 h.TransportRaw = caddyconfig.JSONModuleObject(rt, "protocol", name, nil)
413
414 + case "transparent":
415 + if d.NextArg() {
416 + return d.ArgErr()
417 + }
418 + if h.Headers == nil {
419 + h.Headers = new(headers.Handler)
420 + }
421 + if h.Headers.Request == nil {
422 + h.Headers.Request = new(headers.HeaderOps)
423 + }
424 + // The X-Forwarded-For header is always appended to by default, directly in the reverse proxy code
425 + headers.CaddyfileHeaderOp(h.Headers.Request, "Host", "{http.request.hostport}", "")
426 + headers.CaddyfileHeaderOp(h.Headers.Request, "X-Real-Ip", "{http.request.remote}", "")
427 + headers.CaddyfileHeaderOp(h.Headers.Request, "X-Forwarded-Proto", "{http.request.scheme}", "")
428 +
429 default:
430 return d.Errf("unrecognized subdirective %s", d.Val())
431 }