ruby-on-rails - 获取NGINX来提供.gz压缩 Assets 文件

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

Rails 3.1有一个方便的系统,可以将文件压缩为.gz文件。但是,相反,我要做的是将所有使用asset:precompile创建的 Assets 文件移动到静态Web服务器。所有这些都可以,但是我如何才能让Nginx正常提供.gz文件呢?

最佳答案

1)确保您具有Nginx> 1.2.x(以对 header 进行适当的修改)并使用 --with-http_gzip_static_module 选项进行编译

2)在上启用此选项 gzip(以使用gzip header 提供后端响应)

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

4)防止生成etag并最后修改 Assets 计算

5)开启正确的Cache-Control来缓存SSL提供的静态 Assets ,
除非关闭浏览器后它们将过期

  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连接。

关于ruby-on-rails - 获取NGINX来提供.gz压缩 Assets 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6952639/

相关文章:

javascript - gmaps4rails - 将标记拖放到新位置

ruby-on-rails-3 - 对非属性使用 Ransack sort_link

同一服务器上多个站点的nginx配置

ruby-on-rails - Show 方法中的 ActiveAdmin 显示集合

ruby-on-rails - 如何修改 Rails 引擎以需要我的库?

ruby-on-rails - Instagram.get_access_token 返回 BadRequest

get - 删除 nginx 重写中的参数

ruby-on-rails - rails 3.2.11 : RailsAdmin localization

css - 从 Rails 中的 scss 文件复制 css

nginx - 对于像 supervisord 这样的进程 Controller ,RHEL init.d 脚本中的 chkconfig 行应该设置为什么?