Utilisation de X-Accel-Redirect

Bug #745533 reported by Herve Rousseau
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Documentation Ubuntu-fr
Fix Released
High
YoBoY

Bug Description

Actuellement, les images sont traitées de la manière suivante :

 - Appel du client
 - Traitement par nginx
 - Appel du script PHP de Doku
 - Le script retourne l'image

Ce mode de fonctionnement a pour principal défaut de forcer nginx à stocker le contenu du fichier (image ou autre) dans un fichier, et accessoirement ça pourrit les logs avec des lignes du genre :

2011/03/30 10:17:09 [warn] 21443#0: *102209 an upstream response is buffered to a temporary file /var/lib/nginx/fastcgi/4/42/0000003424 while reading upstream, client: xxxxx, server: doc.ubuntu-fr.org, request: "GET /_media/ubuntu_studio_lucid.png?w=300 HTTP/1.1", upstream: "fastcgi://1xxxx9000", host: "doc.ubuntu-fr.org", referrer: "http://doc.ubuntu-fr.org/ubuntu_studio"

J'ai découvert avec étonnement que Dokuwiki supporte cette fameuse "extension" appelée X-Sendfile à la base qui permettrait à nginx de retourner directement l'image spécifiée par le script PHP invoqué, et il n'aurait besoin que du chemin vers l'image ou le fichier à retourner.

 - Appel du client
 - Traitement par nginx
 - Appel du script PHP de Doku
 - Le script retourne le chemin vers l'image
 - Nginx intercepte l'entête
 - Nginx retourne l'image
(plus de buffering sur disque, et moins de process PHP occupés).

Doc (plus que succinte) de Doku à ce sujet : http://www.dokuwiki.org/config:xsendfile

Il semblerait que l'implémentation qui en est faite soit un peu bancale, car le contenu de l'entete X-Accel-Redirect est en fait le chemin complet vers l'image (au niveau FS).

Une redirection internal est necessaire pour que Nginx sache comment traiter ce chemin (tout est expliqué ici : http://wiki.nginx.org/XSendfile)

Related branches

Changed in ubuntu-fr-doc:
assignee: nobody → Herve Rousseau (herve-rousseau)
importance: Undecided → High
Revision history for this message
YoBoY (yoboy-leguesh) wrote :

En fait c'est plus de la configuration serveur, je rajoute ça dans le local.protected.dist en commenté pour mémoire.

Changed in ubuntu-fr-doc:
assignee: Herve Rousseau (herve-rousseau) → YoBoY (yoboy-leguesh)
milestone: none → 20102207-ufr-3
status: New → Triaged
YoBoY (yoboy-leguesh)
Changed in ubuntu-fr-doc:
status: Triaged → Fix Committed
YoBoY (yoboy-leguesh)
Changed in ubuntu-fr-doc:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.