Reverse Proxy
Reverse Proxy
Section titled “Reverse Proxy”Access Plex through a custom domain with SSL.
Why Use a Reverse Proxy?
Section titled “Why Use a Reverse Proxy?”- Custom domain (plex.yourdomain.com)
- Free SSL with Let’s Encrypt
- Centralized access management
- Hide port numbers
Basic Configuration
Section titled “Basic Configuration”server { listen 80; server_name plex.yourdomain.com; return 301 https://$server_name$request_uri;}
server { listen 443 ssl http2; server_name plex.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/plex.yourdomain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/plex.yourdomain.com/privkey.pem;
location / { proxy_pass http://localhost:32400; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme;
# WebSocket support proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade";
proxy_buffering off; }}SSL with Certbot
Section titled “SSL with Certbot”# Install certbotsudo apt install certbot python3-certbot-nginx
# Get certificatesudo certbot --nginx -d plex.yourdomain.com
# Auto-renewalsudo certbot renew --dry-runSimpler configuration with automatic SSL:
plex.yourdomain.com { reverse_proxy localhost:32400}Traefik (Docker)
Section titled “Traefik (Docker)”version: '3.8'
services: traefik: image: traefik:latest ports: - "80:80" - "443:443" volumes: - /var/run/docker.sock:/var/run/docker.sock - ./traefik:/etc/traefik command: - --providers.docker=true - --entrypoints.web.address=:80 - --entrypoints.websecure.address=:443 - --certificatesresolvers.letsencrypt.acme.email=you@email.com - --certificatesresolvers.letsencrypt.acme.storage=/etc/traefik/acme.json - --certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web
plex: image: plexinc/pms-docker labels: - "traefik.enable=true" - "traefik.http.routers.plex.rule=Host(`plex.yourdomain.com`)" - "traefik.http.routers.plex.tls=true" - "traefik.http.routers.plex.tls.certresolver=letsencrypt" - "traefik.http.services.plex.loadbalancer.server.port=32400"Plex Configuration
Section titled “Plex Configuration”After setting up reverse proxy:
- Settings → Network
- Add custom server access URL
- Set secure connections preference