htaccess ejemplo descargar apache nginx archive serving

apache - ejemplo - Sirve archivos estáticos del archivo



.htaccess descargar (6)

Sospecho que no existe, especialmente como una alternativa cuando no se encuentran los archivos comunes. Dicho esto, una secuencia de comandos CGI para hacerlo sería bastante simple. Sin embargo, es muy probable que la pérdida de rendimiento se note cuando está bajo carga.

¿Hay algún módulo para que apache / nginx sirva archivos estáticos de archivo (zip, tgz, tbz ...), de modo que si no hay un archivo en la ubicación especificada, entonces se solicita el archivo indicado para ese archivo?


Para el caso de .tgz y .tbz, la mayor parte de la pérdida de rendimiento (especialmente para archivos grandes) debe provenir del hecho de que tiene que leer desde el disco y descomprimir todos los datos hasta e incluyendo el archivo que solicitó. Si solicita el último archivo en el archivo, entonces, ya sea un script CGI o un servidor web, todavía tendrá que pasar el tiempo leyendo, descomprimiendo y descartando todos los datos de archivo solo para acceder a su archivo.

El formato Zip permite el acceso aleatorio. Si su script CGI es muy simple (puede ser un script sh), y básicamente solo llama "descomprimir" con el argumento correcto, entonces la cantidad de aceleración que podría obtener al hacer que un módulo de servidor lo haga sería bastante pequeño.

Dicho esto, es una locura si un módulo para hacer esto no existe (pero no, no he podido encontrar uno).


No estoy al tanto de tal módulo.

Si escribes la tuya, te recomendaría que try_files un vistazo y try_files directiva try_files http://wiki.nginx.org/HttpCoreModule#try_files y entregues los argumentos de solicitud a un script, por ejemplo, un archivo php (mira en la wiki página la línea try_files que termina en: /index.php?q=$uri&$args; ).

Rendimiento: De esa manera, usted realiza algunas comprobaciones de seguridad con php, clasifica los bots del motor de búsqueda y tal vez incluso guarda en memoria algunos archivos después de desempaquetarlos, pero eso depende de las estadísticas / patrones de su solicitud específica.

Algunas herramientas o paquetes pera pueden permitirle extraer archivos a la tubería (stdout) y evitar el volcado al sistema de archivos o el desempaquetado puede ocurrir en un ramdisk para acelerar las cosas. Pero, una vez más, el camino a seguir depende del tamaño de los archivos para hacer que algo así sea confiable.


Otra posibilidad puede ser el uso de un sistema de archivos comprimido, dependiendo de los tipos y la distribución de los archivos también con deduplicación.

Pro:

-Tiene casi el mismo efecto que un archivo .zip (Almacenamiento inteligente)

-No hay cambios en la parte del servidor web necesaria

Contras:

-Posiblemente nuevo FS para el DIR zip

- Puede que no esté presente en sistemas operativos usados ​​(por ejemplo, ZFS)

Tal vez haya otra forma si clarificas lo que estás tratando de lograr.


Existe: http://wiki.nginx.org/HttpGzipStaticModule

La transmisión directa de un archivo omite descomprimir y recomprimir o montar cualquier cosa. Esta es una buena idea si el contenido estático está lógicamente organizado, optimizado y minimizado, lo suficientemente pequeño como para reducir el tiempo de carga de la página o los sockets de servidor o la CPU son de primera. Además, el montaje de sistemas de archivos para cientos de paquetes de garantías de clientes en un VPS, entorno de alojamiento o CDN puede no ser escalable.


Deberías echarle un vistazo a SquashFS , es un sistema de archivos comprimido.

Puede pensarlo como un archivo tar.gz, utilizado principalmente en LiveCD / DVD / USB ISO pero perfectamente aplicable a su situación.

Aquí hay un HowTo.

PD: Al contrario de otras respuestas, no necesitas un sistema operativo particular para usar SquashFS, pero si ejecutas Solaris o FreeBSD usa la compresión de ZFS , ¡es genial!