获取NGINX以提供.gz压缩资产文件

mat*_*sko 29 gzip assets ruby-on-rails nginx ruby-on-rails-3

Rails 3.1有一个方便的系统,可以将文件压缩成.gz文件.但是,相反,我已经将所有使用资产创建的资产文件:precompile移动到静态Web服务器.这一切都有效,但我怎样才能让nginx正常提供.gz文件?

Ana*_*oly 59

1)确保你有Nginx> 1.2.x(正确的标题修改)并使用--with-http_gzip_static_module选项进行编译

2)启用此选项gzip on(使用gzip头提供后端响应)

3)使用gzip_static设置资产位置 (直接提供all.css.gz,all.js.gz文件)

4)防止etag生成和最后修改资产计算

5)打开正确的Cache-control来缓存SSL服务的静态资产,除非它们在浏览器关闭后过期

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

如果你想获得完整的Nginx配置,你可以在Github上看到这个要点.

open_file_cache可以帮助您缓存:打开文件描述符,它们的大小,修改时间和目录查找,这有助于文件系统的高负载.

更新:如果您居住在边缘,请打开SPDY以增强SSL连接.

  • 如果你想关闭错误日志(你真的不应该这样做),你只需要使用/ dev/null.access_log接受一个'off'参数,它实际上会关闭日志记录,因此首先不会生成这些行. (2认同)
  • 要最大限度地减少文件系统的负载,请不要忘记使用**noatime**选项安装设备.每次访问时,它都会阻止每个资产的更新访问时间. (2认同)
  • 根据您的具体情况,您可能希望从gzip列表中删除图像.它没有多大帮助,吃了CPU.在上传到服务器之前更好地压缩它们. (2认同)