En mi configuración nginx 0.8.34, estoy usando la función X-Accel-Redirect para controlar las descargas de archivos en el código de la aplicación sin que la aplicación maneje la descarga en sí.
Después de mucho dolor, esto ahora funciona básicamente, excepto que nginx siempre devuelve el archivo con el text/html
tipo de contenido.
El tipo de contenido predeterminado es application / octet-stream, especificado en el http
bloque.
El bloque de servidor contiene, entre otras cosas, la definición del directorio donde se almacenan los archivos:
location /files {
default_type application/octet-stream;
alias /srv/www/uploads;
internal;
}
Así que especifiqué el tipo de contenido incluso aquí, pero nada ha cambiado.
No quiero establecer el tipo de contenido por la aplicación porque luego me ralentizaría (primero tendría que determinarlo). Entonces, idealmente, nginx devolvería el tipo mime correcto basado en la extensión del archivo (sí incluyo mime.types en el http
bloque).