让 NGINX 提供 .gz 压缩资源文件
Rails 3.1 有一个方便的系统,可以将文件压缩为 .gz 文件。然而,我所做的是将使用 asset:precompile 创建的所有资源文件移动到静态网络服务器。这一切都有效,但我怎样才能让 nginx 正常提供 .gz 文件呢?
Rails 3.1 has a convenient system which can compress files into .gz files. However, instead what I've done is I've moved all the asset files that are created with assets:precompile to a static webserver. This all works, but how can I get nginx to serve the .gz files normally?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
1)确保你有 Nginx > 1.2.x(正确的标头修改)并使用 --with-http_gzip_static_module 选项进行编译
2) 启用此选项 gzip on (使用 gzip 标头为后端响应提供服务)
3) 使用gzip_static on设置资产位置
(直接提供 all.css.gz、all.js.gz 文件)
4) 防止资产的 etag 生成和最后修改计算
5) 打开右侧缓存控制以缓存所提供的 SSL静态资产,
除非浏览器关闭后它们就会过期,否则
如果您想获得完整的 Nginx 配置,您可以在 Github 上查看此要点。
open_file_cache 帮助您缓存:打开的文件描述符、它们的大小、修改时间和目录查找,这对于文件系统的高负载很有帮助。
更新:如果您生活在边缘,请打开 SPDY 来增强 SSL 连接。
1) ensure you have Nginx > 1.2.x (to proper headers modifications) and compile with --with-http_gzip_static_module option
2) Enable this option gzip on (to serve back-end response with gzip header)
3) Setup assets location with gzip_static on
(to serve all.css.gz, all.js.gz files directly)
4) Prevent of etag generation and last-modify calculation for assets
5) Turn on the right Cache-control to cache SSL served static assets,
unless they will be expired once browser is closed
if you would like to get full Nginx configuration, you can see this gist on Github.
open_file_cache helps you to cache: open file descriptors, their sizes, modification times and directory lookups, which is helpful for high load on the file system.
UPDATE: If you are living on the edge, turn on the SPDY to boost the SSL connection.