为OpenResty增加ngx_pagespeed模块进行优化,


1、下载ngx_pagespeed模块

wget https://github.com/pagespeed/ngx_pagespeed/archive/v1.8.31.4-beta.zip
unzip v1.8.31.4-beta.zip
cd ngx_pagespeed-1.8.31.4-beta/
wget https://dl.google.com/dl/page-speed/psol/1.8.31.4.tar.gz
tar -xzvf 1.8.31.4.tar.gz

2、重新编译OpenResty

./configure --prefix=/usr/local/openresty/ --with-http_stub_status_module --add-module=/usr/local/software/ngx_pagespeed-1.8.31.4-beta/ --with-luajit
make
mv /usr/local/openresty/nginx/sbin/nginx /usr/local/openresty/nginx/sbin/nginx.old
cp /usr/local/software/ngx_openresty-1.7.0.1/build/nginx-1.7.0/objs/nginx /usr/local/openresty/nginx/sbin/
service nginx restart
/usr/local/openresty/nginx/sbin/nginx -V

3、配置pagespeed

对新手用户而言:使用CoreFilters
CoreFilters含有一系列PageSpeed过滤器,谷歌认为这些过滤器对大多数网站来说是安全的。如果启用CoreFilters,你就自动启用了一系列"安全"规则。所以,推荐新手用户采用这种方法。如果你愿意,也可以禁用CoreFilters中的某个或某些过滤器,或者选择性地启用额外的过滤器。下面这个例子表明了使用CoreFilters的ngx_pagespeed配置。

server { 
# 侦听的端口 
listen 80; 
# 服务器名称 
server_name xmodulo.com www.xmodulo.com; 
# 记下根目录 
root /usr/local/nginx/html; 
# 访问日志 
access_log /var/log/nginx/access.log main; 
# 启用ngx_pagespeed 
pagespeed on; 
pagespeed FileCachePath /var/ngx_pagespeed_cache; 
# 启用CoreFilters 
pagespeed RewriteLevel CoreFilters; 
# 禁用CoreFilters中的某些过滤器 
pagespeed DisableFilters rewrite_images; 
# 选择性地启用额外的过滤器 
pagespeed EnableFilters collapse_whitespace; 
pagespeed EnableFilters lazyload_images; 
pagespeed EnableFilters insert_dns_prefetch; 
} 

对高级用户而言:使用PassThrough
如果是高级用户,你可以使用PageThrough级别,你可以手动启用个别过滤器。

server { 
# 侦听的端口 
listen 80; 
# 服务器名称 
server_name xmodulo.com www.xmodulo.com; 
# 记下根目录 
root /usr/local/nginx/html; 
# 访问日志 
access_log /var/log/nginx/access.log main; 
# 启用ngx_pagespeed 
pagespeed on; 
pagespeed FileCachePath /var/ngx_pagespeed_cache; 
# 禁用CoreFilters 
pagespeed RewriteLevel PassThrough; 
# 启用压缩空白过滤器 
pagespeed EnableFilters collapse_whitespace; 
# 启用JavaScript库卸载 
pagespeed EnableFilters canonicalize_javascript_libraries; 
# 把多个CSS文件合并成一个CSS文件 
pagespeed EnableFilters combine_css; 
# 把多个JavaScript文件合并成一个JavaScript文件 
pagespeed EnableFilters combine_javascript; 
# 删除带默认属性的标签 
pagespeed EnableFilters elide_attributes; 
# 改善资源的可缓存性 
pagespeed EnableFilters extend_cache; 
# 更换被导入文件的@import,精简CSS文件 
pagespeed EnableFilters flatten_css_imports; 
pagespeed CssFlattenMaxBytes 5120; 
# 延时加载客户端看不见的图片 
pagespeed EnableFilters lazyload_images; 
# 启用JavaScript缩小机制 
pagespeed EnableFilters rewrite_javascript; 
# 启用图片优化机制 
pagespeed EnableFilters rewrite_images; 
# 预解析DNS查询 
pagespeed EnableFilters insert_dns_prefetch; 
# 重写CSS,首先加载渲染页面的CSS规则 
pagespeed EnableFilters prioritize_critical_css; 
} 

4、修改缓存目录的主属(我的OpenResty是用nobody用户)

chown nobody:nobody /var/ngx_pagespeed_cache

 

相关内容