toomuchio / plex-nginx-reverseproxy

Configuration to serve Plex Media Center https://plex.tv using Nginx https://nginx.com
663 stars 94 forks source link

IPv6 support #52

Closed RibShark closed 1 year ago

RibShark commented 3 years ago

Nginx needs to listen on IPv6 too if server/client support IPv6.

brettpetch commented 3 years ago

IMHO this is a better implementation:

upstream plex_backend {
    server 127.0.0.1:32400;
    keepalive 32;
}
map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}
server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    # Define Server Domain
    server_name plex.EXAMPLE.COM;

    ssl_certificate /etc/nginx/ssl/plex.EXAMPLE.COM/fullchain.pem;
    ssl_certificate_key /etc/nginx/ssl/plex.EXAMPLE.COM/key.pem;

    include snippets/ssl-params.conf;
    #
    send_timeout 100m;
    #
    location / {
        # Sockets
        proxy_set_header Sec-WebSocket-Extensions $http_sec_websocket_extensions;
        proxy_set_header Sec-WebSocket-Key $http_sec_websocket_key;
        proxy_set_header Sec-WebSocket-Version $http_sec_websocket_version;
        # Plex Headers
        proxy_set_header X-Plex-Client-Identifier $http_x_plex_client_identifier;
        proxy_set_header X-Plex-Device $http_x_plex_device;
        proxy_set_header X-Plex-Device-Name $http_x_plex_device_name;
        proxy_set_header X-Plex-Platform $http_x_plex_platform;
        proxy_set_header X-Plex-Platform-Version $http_x_plex_platform_version;
        proxy_set_header X-Plex-Product $http_x_plex_product;
        proxy_set_header X-Plex-Token $http_x_plex_token;
        proxy_set_header X-Plex-Version $http_x_plex_version;
        proxy_set_header X-Plex-Nocache $http_x_plex_nocache;
        proxy_set_header X-Plex-Provides $http_x_plex_provides;
        proxy_set_header X-Plex-Device-Vendor $http_x_plex_device_vendor;
        proxy_set_header X-Plex-Model $http_x_plex_model;
        # Allows All Encodings
        proxy_set_header Accept-Encoding "";
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_ssl_verify off;
        proxy_http_version 1.1;
        proxy_set_header Host $http_host;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_read_timeout 86400;
        proxy_pass https://plex_backend;
      }
}