Running Plex behind a reverse proxy gives you HTTPS with a real certificate, a clean custom domain, and an extra layer of security. It’s also the source of some of the most confusing troubleshooting we handle.

Why Use a Reverse Proxy?

Popular Options

Nginx Proxy Manager (recommended for beginners)

Web-based GUI for nginx. Point-and-click SSL certificates and proxy host creation. Runs in Docker.

Traefik

Auto-discovers Docker containers and creates routes via labels. More complex initial setup, but zero-touch once configured.

Caddy

Automatic HTTPS out of the box. Simple Caddyfile configuration. Great for single-service setups.

Cloudflare Tunnel

No port forwarding at all. Cloudflare’s cloudflared daemon creates an outbound tunnel. Free tier works. Downside: all traffic routes through Cloudflare, adding latency.

The Plex-Specific Gotchas

WebSocket support is mandatory

Plex uses WebSockets for real-time updates. If your proxy doesn’t pass WebSocket upgrade headers, the Plex web app shows stale data.

Custom connection URL

Tell Plex about the proxy: Settings → Network → Custom server access URLs → https://plex.yourdomain.com:443. Without this, clients may bypass the proxy.

Secure connections setting

Set Network → Secure connections to “Preferred” (not “Required”). “Required” can break local direct play.

Large file uploads

Default nginx client_max_body_size is 1MB. Plex camera upload sends multi-GB files. Set client_max_body_size 100G; or disable the limit.

Buffering through the proxy

Nginx buffers responses by default. For video streaming, disable it: proxy_buffering off; and increase timeouts. Without this, 4K streams stall.

Security Considerations

Need Help?

Reverse proxy configuration is one of the most common things we help with. Our remote sessions get it working correctly and securely.