mirror of
https://github.com/caddyserver/caddy.git
synced 2026-07-08 18:06:53 +00:00
* caddyhttp: add `http.request.local{,.host,.port}` placeholder
This is the counterpart of `http.request.remote{,.host,.port}`.
`http.request.remote` operates on the remote client's address, while
`http.request.local` operates on the address the connection arrived on.
Take the following example:
- Caddy serving on `203.0.113.1:80`
- Client on `203.0.113.2`
`http.request.remote.host` would return `203.0.113.2` (client IP)
`http.request.local.host` would return `203.0.113.1` (server IP)
`http.request.local.port` would return `80` (server port)
I find this helpful for debugging setups with multiple servers and/or
multiple network paths (multiple IPs, AnyIP, Anycast).
Co-authored-by: networkException <git@nwex.de>
* caddyhttp: add unit test for `http.request.local{,.host,.port}`
* caddyhttp: add integration test for `http.request.local.port`
* caddyhttp: fix `http.request.local.host` placeholder handling with unix sockets
The implementation matches the one of `http.request.remote.host` now and
returns the unix socket path (just like `http.request.local` already did)
instead of an empty string.
---------
Co-authored-by: networkException <git@nwex.de>
|
||
|---|---|---|
| .. | ||
| caddyfile_adapt | ||
| testdata | ||
| acme_test.go | ||
| acmeserver_test.go | ||
| autohttps_test.go | ||
| caddyfile_adapt_test.go | ||
| caddyfile_test.go | ||
| handler_test.go | ||
| leafcertloaders_test.go | ||
| listener_test.go | ||
| map_test.go | ||
| pki_test.go | ||
| reverseproxy_test.go | ||
| sni_test.go | ||
| stream_test.go | ||