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

时间:2011-08-05 07:02:54

标签: ruby-on-rails ruby-on-rails-3 nginx gzip assets

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

1 个答案:

答案 0 :(得分:58)

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 "";
  }

如果您想获得完整的Nginx配置,可以看到this gist on Github

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

更新:如果您居住在边缘,请启用SPDY以增强SSL连接。