Is there an existing issue for this?
Current behavior
All three nginx config files (apps/web, apps/admin, apps/space) have a typo in the real_ip_header directive:
real_ip_header X-Forward-For; ← wrong (not a real HTTP header)
X-Forward-For does not exist as an HTTP header. The correct standard header is X-Forwarded-For. Because of this typo, Nginx never replaces $remote_addr with the actual client IP, so rate limiting (limit_req_zone $binary_remote_addr) and IP logging always see the proxy/load balancer IP instead of the real client IP.
Steps to reproduce
- Deploy Plane behind a proxy or CDN (e.g. AWS ELB, Cloudflare)
- Check the IP seen by the application — it will be the proxy IP, not the real client IP
- Rate limiting (
limit_req_zone) applies per-proxy instead of per-client, making it ineffective
Environment
Self-hosted (Docker)
Browser
N/A
Variant
Community Edition / All
Version
All
Is there an existing issue for this?
Current behavior
All three nginx config files (
apps/web,apps/admin,apps/space) have a typo in thereal_ip_headerdirective:X-Forward-Fordoes not exist as an HTTP header. The correct standard header isX-Forwarded-For. Because of this typo, Nginx never replaces$remote_addrwith the actual client IP, so rate limiting (limit_req_zone $binary_remote_addr) and IP logging always see the proxy/load balancer IP instead of the real client IP.Steps to reproduce
limit_req_zone) applies per-proxy instead of per-client, making it ineffectiveEnvironment
Self-hosted (Docker)
Browser
N/A
Variant
Community Edition / All
Version
All