Ce qui suit est une explication détaillée de toutes les solutions de mise en cache pour les fichiers téléchargés par Nginx via des descriptions textuelles.
Parce que le serveur d'applications (Jetty) implémente une barre de progression lors du téléchargement. Mis en cache. Il n'y a aucun moyen de lire la progression. De plus, la mise en cache des fichiers chez Nginx réduit également l'efficacité de la transmission.
nginx utilise 1.5.6.
Le backend utilise nodejs formidable pour accepter les fichiers téléchargés. La réponse à ce problème n'a rien à voir avec le type de backend utilisé. Voici juste une explication.
Question :
Téléchargez le fichier sur la page front-end. nginx ne transmet pas chaque bloc de données de fichier reçu au back-end, mais les met tous en cache une fois la collecte terminée, il les transmet au back-end pièce par pièce. . Il est évident que le temps de téléchargement a été considérablement allongé.
Module impliqué dans le problème : ngx_http_core_module
Méthode correspondante :
Mettez à niveau la version nginx vers la version 1.7.11 ou supérieure.
Ajouter une directive : proxy_request_buffering off
Les instructions sont les suivantes :
Référence :
http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_request_buffering
Redémarrez nginx et le problème sera résolu.
Cette solution résout le problème de la mise en cache de tous les fichiers téléchargés par Nginx. La solution n'est pas seulement celle de cet article, mais il y en a d'autres. Tout le monde est invité à partager vos propres solutions.