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