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
}