{{define "title"}}Reverse proxy test · MeshTender{{end}} {{define "header"}}
Administration

Reverse proxy test

{{end}} {{define "content"}}
Client IP the app records
{{.ResolvedIP}}
Used for rate limiting and audit logs (via chi RealIP → X-Forwarded-For / X-Real-IP).
Actual connection (TCP peer)
{{.RawPeer}}
The socket that reached the app — your proxy/load balancer if one is in front.
{{if .HeaderApplied}} {{else}} {{end}}

Trusted-proxy resolution

Connecting peer
{{.RawPeer}} {{if .PeerTrusted}}trusted{{else}}not trusted{{end}} {{if not .PeerTrusted}}
The connecting peer isn't a trusted proxy, so forwarding headers are ignored and the peer is used as the client IP. If a proxy or router sits in front, add its address to the trusted list below.
{{end}}
X-Forwarded-For chain (client = rightmost untrusted hop)
{{if .XFFChain}}
{{range .XFFChain}} {{.IP}}{{if .Trusted}} · trusted{{end}}{{if .Selected}} · client{{end}} {{end}}
{{else}}No X-Forwarded-For header on this request.{{end}}
Trusted proxy ranges
{{range .TrustedProxies}}{{.}}{{end}}
Set MESHTENDER_TRUSTED_PROXIES (comma-separated CIDRs/IPs, or the private shorthand) to trust additional hops. Loopback is always trusted.

Forwarding headers

{{range .Forwarding}} {{end}}
HeaderValue
{{.Name}} {{if .Value}}{{.Value}}{{else}}{{end}}

Connection

Host
{{.Host}}
Scheme
{{.Scheme}}
Protocol
{{.Proto}}
Method
{{.Method}}
Request URI
{{.RequestURI}}

All request headers

credentials redacted
{{range .AllHeaders}} {{end}}
HeaderValue
{{.Name}} {{.Value}}
{{template "icon-arrow-left" "me-1"}}Back to admin {{end}}