Définissez les délais d'expiration du proxy à partir du téléchargement légitime le plus lent que vous accepterez, avec une marge, et veillez à ce que l'application ainsi que tout proxy en amont soient au moins aussi permissifs. Ne corrigez pas chaque échec de téléchargement en choisissant un délai d'expiration illimité.
Une grande photo ou vidéo peut échouer alors que la même application fonctionne normalement, car le corps de la requête, le traitement en amont ou la réponse dépasse une limite différente. Relevez d'abord le code d'état, le temps écoulé, la taille du fichier et le journal du proxy. Ces observations permettent de distinguer un rejet dû à la taille du corps d'un délai d'inactivité, d'un délai d'expiration du backend ou d'une déconnexion du client.
Identifiez l'étape qui interrompt le téléchargement
Répétez le test avec un fichier connu et notez si l'échec survient pendant le transfert, après que la barre de progression a atteint 100 pour cent, ou pendant que le serveur traite les fichiers multimédias. Chaque phase correspond à une connexion et à un délai d'expiration différents.
Un échec systématique au même nombre d'octets suggère une limite de taille du corps ; un échec après le même intervalle d'inactivité suggère un délai d'expiration. Une erreur de passerelle après la fin du téléchargement indique que l'attente entre le proxy et l'application, ou la propre limite de traitement de l'application, est probablement en cause.
Lisez conjointement les journaux d'accès et d'erreurs du proxy ainsi que ceux de l'application. Si le client a fermé la connexion en premier, augmenter uniquement le délai d'expiration du proxy ne pourra pas aider ; vérifiez le comportement en arrière-plan sur mobile, la stabilité du VPN et le chemin de requête du navigateur.
Mesurez un budget de délai d'expiration justifiable
Divisez le fichier le plus volumineux accepté par le débit en amont pris en charge le plus lent afin d'estimer la durée du transfert, puis ajoutez une marge pour TLS, la mise en mémoire tampon et les variations de débit. Utilisez cette valeur comme plafond pour les opérations légitimes, et non comme une promesse que toute connexion lente doit rester ouverte indéfiniment.
Distinguez la durée totale de la durée d'inactivité. Par exemple, NGINX documente des directives de délai d'expiration du proxy distinctes, dont certaines mesurent l'intervalle entre des opérations successives plutôt que la durée de l'ensemble de la réponse.
Gardez le risque de déni de service à l'esprit. Restreignez les points de terminaison de téléchargement au moyen de l'authentification et de contrôles de débit avant de prolonger sensiblement la durée de vie des connexions, et n'exposez pas l'interface d'administration du proxy.
Alignez chaque couche sans surcorriger
Définissez la taille du corps de la requête à une valeur égale ou supérieure au maximum pris en charge par l'application. Alignez ensuite les délais de lecture du corps côté client, de connexion en amont, de lecture en amont et d'envoi en amont en fonction de la phase d'échec observée.
Vérifiez la présence d'un CDN externe, d'un tunnel, d'un équilibreur de charge ou d'un second proxy inverse imposant une limite plus courte et immuable. La limite effective est la plus petite de toute la chaîne ; modifier uniquement le proxy interne peut donc ne produire aucun résultat observable.
Documentez les URL de l'application et les routes du proxy. Le guide ZimaSpace consacré à Immich sur un partage réseau aide à distinguer les erreurs du chemin de téléchargement de la latence et des pannes liées au montage du stockage.
Retestez les téléchargements lents, volumineux et interrompus
Téléchargez le fichier d'origine qui échouait depuis l'emplacement d'origine et avec le débit réseau d'origine. La réussite exige la fin du téléchargement, l'indexation par l'application et un fichier lisible ou visualisable, et pas seulement un code de réussite HTTP.
Limitez le débit d'une connexion de test au débit minimal pris en charge et répétez l'opération. Interrompez ensuite volontairement un téléchargement ; les fichiers temporaires et les enregistrements incomplets de la base de données doivent être nettoyés conformément au comportement de l'application.
Cessez d'augmenter les délais d'expiration lorsque les journaux indiquent un plantage du backend, une erreur de stockage ou une limite fixe imposée par un fournisseur externe. Rétablissez des valeurs raisonnables, corrigez la couche défaillante et conservez le délai d'expiration le plus court qui couvre systématiquement la charge mesurée.
FAQ
Tous les délais d'expiration du proxy doivent-ils utiliser la même valeur ? Non. L'établissement de la connexion, la lecture du corps côté client, l'attente de la réponse en amont et les envois en aval protègent des phases différentes.
Pourquoi une petite photo fonctionne-t-elle alors qu'une vidéo échoue ? La vidéo peut dépasser un seuil de taille du corps, durer plus longtemps qu'une limite d'inactivité ou déclencher un traitement côté serveur plus long ; les journaux et le moment de l'échec permettent d'identifier la cause.
Assistance et conseils
Plus à lire

Une galerie auto-hébergée peut-elle préserver l’association des Live Photos Apple ?
Une décision conditionnelle concernant un serveur personnel pour l’association des Live Photos Apple, avec des tests contrôlés, l’interprétation des résultats, une procédure de retour...

Pouvez-vous importer Google Takeout et les sauvegardes de téléphone dans une seule photothèque ?
Une décision conditionnelle concernant un serveur domestique pour l’importation groupée de photos, avec des tests contrôlés, l’interprétation des résultats, un retour en arrière et...

Immich peut-il utiliser une bibliothèque externe sans prendre possession des fichiers ?
Une décision conditionnelle pour serveur personnel concernant la propriété des bibliothèques externes d’Immich, avec des tests contrôlés, l’interprétation des résultats, un retour en arrière...

