2011-08-05 20 views
28

Rails 3.1 tiene un sistema conveniente que puede comprimir archivos en archivos .gz. Sin embargo, en cambio, lo que hice fue mover todos los archivos de activos que se crean con activos: precompilar a un servidor web estático. Todo esto funciona, pero ¿cómo puedo hacer que nginx sirva los archivos .gz normalmente?Obtenga NGINX para servir archivos .gz de activos comprimidos

+0

Dado que Rails 4.2 'rake assets: precompile' ya no crea archivos .gz. Algunas correcciones https://multiplethreads.wordpress.com/2015/08/08/generate-gzip-assets-with-rails-sprockets-3/ – Nishant

Respuesta

57

1) asegurarse de que tiene Nginx> 1.2.x (a cabeceras adecuadas modificaciones) y compilar con with-http_gzip_static_module opción

2) Activar esta opción gzip en (para servir de fondo respuesta con cabecera gzip)

3) Configuración activos ubicación con gzip_static en (para servir all.css.gz, all.js.gz archivos directamente)

4) Prevenir la generación etag y última-modificación cálculo de los activos

5) Girar a la derecha Cache-control para SSL caché servido activos estáticos, a menos que se venció una vez que se cierre el explorador

location ~ ^/(assets|images|javascripts|stylesheets|swfs|system)/ { 
     gzip_static on; 
     expires  max; 
     add_header Cache-Control public; 
     add_header Last-Modified ""; 
     add_header ETag ""; 
    } 

si desea obtener la configuración completa de Nginx, puede ver this gist on Github.

open_file_cache le ayuda a almacenar en caché: abre los descriptores de archivos, sus tamaños, los tiempos de modificación y las búsquedas de directorio, lo que es útil para una gran carga en el sistema de archivos.

ACTUALIZACIÓN: Si está viviendo al límite, encienda el SPDY para impulsar la conexión SSL.

+1

no se olvide de desactivar los registros de activos: access_log/dev/null ; error_log/dev/null; – Anatoly

+1

use **/dev/null **, porque de todos modos "off" es un archivo – Anatoly

+2

Solo necesita usar/dev/null si desea desactivar el registro de errores (que de todos modos no debería). access_log acepta un argumento 'apagado' que en realidad apaga el registro, por lo que las líneas ni siquiera se generan en primer lugar. – kolbyjack

Cuestiones relacionadas