为OpenResty增加ngx_pagespeed模块进行优化

简介: 1、下载ngx_pagespeed模块 wget https://github.com/pagespeed/ngx_pagespeed/archive/v1.8.31.4-beta.zip unzip v1.

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

 

相关文章
|
4月前
|
存储 应用服务中间件 nginx
Nginx模块开发:handler模块实现
Nginx模块开发:handler模块实现
30 0
|
7月前
|
存储 缓存 网络协议
Nginx之memcached_module模块解读
Nginx之memcached_module模块解读
|
10月前
|
网络协议 应用服务中间件 nginx
【2022】Nginx目录索引模块ngx_http_autoindex_module
【2022】Nginx目录索引模块ngx_http_autoindex_module
127 0
|
11月前
|
应用服务中间件 nginx
Nginx增加模块
Nginx增加模块
96 0
|
Ubuntu 应用服务中间件 nginx
apt方式安装nginx以及动态增加模块nginx-module-vts
因为有很多人是先通过apt的访问安装了稳定版的nginx。后面突然要增加第三方模块如geoip或者nginx-module-vts等别的模块,这个时候就可以采用本文的方式去动态增加模块。
1176 0
apt方式安装nginx以及动态增加模块nginx-module-vts
|
缓存 应用服务中间件 网络安全
Nginx编译安装nginx-upsync-module模块以实现动态负载
以Consul作为注册中心,用nginx-upsync-module模块实现动态负载。
1008 0
Nginx编译安装nginx-upsync-module模块以实现动态负载
|
应用服务中间件 nginx 数据格式
nginx的rewrite模块使用及gzip模块配置记录
nginx的rewrite模块使用及gzip模块配置记录
1388 0
|
Web App开发 应用服务中间件 nginx