ngx_pagespeed - Gzip静态资产

时间:2013-10-04 18:28:49

标签: nginx mod-pagespeed

我正在尝试为我的nginx框找到最佳方法。当然,我的目标是为用户提供最佳性能和最佳加载时间。

所以我负载测试我的nginx并且 - 在来自nginx论坛的maxim-dounin的帮助下 - 发现我的吞吐量问题是静态资产的随意性。

我必须预先编译构建过程中的所有内容,这非常简单 - 只需使用comp级别@ 1或2即可动态gzip动态内容,这样可以节省一些cpu并允许我作为尽可能使用aws m1.small ec2 instance。

但我也打算使用ngx_pagespeed来优化这些静态资产,缩小,组合,以及ngx_pagespeed做得很好的东西。我的意思是,我可以解决图像并在构建过程中执行jpgoptim和pngoptim,但是组合css / js会更难。

我正在使用这些ngx_pagespeed配置:

pagespeed on;
pagespeed EnableFilters combine_css,combine_javascript,canonicalize_javascript_libraries,collapse_whitespace,convert_meta_tags,dedup_inlined_images,flatten_css_imports,inline_import_to_link,inline_css,inline_javascript,rewrite_javascript,remove_comments,rewrite_css,rewrite_images,convert_gif_to_png,recompress_png,convert_jpeg_to_progressive,strip_image_color_profile,strip_image_meta_data,insert_image_dimensions;
pagespeed JpegRecompressionQuality 80;
pagespeed FileCacheSizeKb            256000; #256mb
pagespeed FileCacheCleanIntervalMs   3600000;
pagespeed FileCacheInodeLimit        500000;
pagespeed FileCachePath /run/shm/nginx/pagespeed_cache;
pagespeed Statistics on;
pagespeed StatisticsLogging on;
pagespeed LogDir /var/log/pagespeed;
pagespeed LowercaseHtmlNames on;

关于ngx_pagespeed如何与nginx gzip_static一起使用的任何想法?我的意思是,就我的理解而言,ngx_pagespeed正在nginx的“前面”运行,因为它将它优化的所有内容缓存到tmpfs。如果服务器受到已优化资产的影响,它将从tmpfs服务器,我在缓存文件夹中查找gzip文件,但找不到任何内容。 首先,ngx_pagespeed有自己的gzipping吗?它是在运行中还是缓存gzip压缩版本?

当它从nginx(gzip_static on)收到已经gzip的资产时它是怎么回事?是否必须在优化后解压缩然后重新gzip?

我如何才能充分利用这两个方面 - 提供预压缩静态资产和ngx_pagespeed优化?

非常感谢和最诚挚的问候。

1 个答案:

答案 0 :(得分:1)

我能够通过将Varnish放在Nginx面前来实现我的目标。 Varnish缓存gziped版本的资产和页面。 ngx_pagespeed下游缓存清除(检查nxg_pagespeed文档以获取更多信息)正在运行,因为它应该通过在优化(我猜想在后台运行)完成时向清漆发送PURGE请求。现在表现很棒。