33800 Docs

← Retour

Proposition : Amélioration configuration Nginx Jellyfin

Date : 09-01-2026 19:40 Status : IMPLEMENTEE Service : Jellyfin URL : https://jellyfin.33800.nowhere84.com


Constat

Jellyfin est déjà accessible depuis l'extérieur via https://jellyfin.33800.nowhere84.com.

Problème identifié : La configuration actuelle ne supporte pas les WebSockets, causant des erreurs 404 sur /socket. Cela affecte :


Configuration actuelle

server {
    listen 443 ssl;
    server_name jellyfin.33800.nowhere84.com;
    ssl_certificate /etc/letsencrypt/live/33800.nowhere84.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/33800.nowhere84.com/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;
    location / {
        proxy_pass http://192.168.1.199:8096;
        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;
    }
    access_log /var/log/nginx/jellyfin.access.log;
    error_log /var/log/nginx/jellyfin.error.log;
}

Configuration proposée

server {
    listen 443 ssl;
    server_name jellyfin.33800.nowhere84.com;

    ssl_certificate /etc/letsencrypt/live/33800.nowhere84.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/33800.nowhere84.com/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;

    location / {
        proxy_pass http://192.168.1.199:8096;
        proxy_http_version 1.1;

        # Support WebSocket (requis pour Jellyfin)
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        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;

        # Timeouts longs pour le streaming vidéo
        proxy_read_timeout 86400s;
        proxy_send_timeout 86400s;

        # Désactiver le buffering pour le streaming
        proxy_buffering off;

        # Taille max pour les uploads (sous-titres, etc.)
        client_max_body_size 100M;
    }

    access_log /var/log/nginx/jellyfin.access.log;
    error_log /var/log/nginx/jellyfin.error.log;
}

Modifications apportées

Élément Avant Après Impact
proxy_http_version non défini 1.1 Requis pour WebSocket
Upgrade header absent ajouté Active WebSocket
Connection header absent "upgrade" Active WebSocket
proxy_read_timeout défaut (60s) 86400s Évite timeout streaming long
proxy_send_timeout défaut (60s) 86400s Évite timeout streaming long
proxy_buffering défaut (on) off Streaming temps réel
client_max_body_size défaut (1M) 100M Permet upload sous-titres

Étapes d'exécution

  1. Backup de la config actuelle sur nginx.local
  2. Mise à jour du fichier /etc/nginx/sites-available/jellyfin.33800.nowhere84.com.conf
  3. Test de la configuration (nginx -t)
  4. Rechargement de Nginx (systemctl reload nginx)
  5. Test d'accès depuis l'extérieur

Risques


Validation requise