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/