本文作者:Tianheng Ni
本文分类:前端开发 浏览:1815
阅读时间:4299字, 约5-7分钟
Google向我们提供了一系列网站加速工具,都非常好用:https://developers.google.com/speed
没有梯/子的同志们请用国内的Google服务器,就是经常会挂www
其中有使用人数很多的Pagespeed Insights分析工具,
还有两个比较小众的优化工具——
mod_pagespeed(适用于Apache) 和 ngx_pagespeed(适用于Nginx)
它们功能都是一样的,只是适用于不同的服务器软件。
它们可以在PageSpeed Module找到。
如果您已经安装了nginx,建议使用以下脚本一键安装,无需操作,非常方便。
curl https://github.com/EricNTH080103/ngx_pagespeed_auto/releases/download/v0.0.1/nps_auto.sh|bash
如果您尚未安装nginx,可以使用官方给出的脚本进行编译安装,会和nginx最新版一起安装好。
bash <(curl -f -L -sS https://ngxpagespeed.com/install) \
--nginx-version latest
然后,打开您站点的配置文件,进行编辑。下面是本人推荐的配置(适用于wordpress):
#google ngx_pagespeed
# on 启用,off 关闭
pagespeed on;
# 域名和目录
pagespeed Domain "你的域名,如https://nth.ink";
pagespeed LoadFromFile "你的域名,如https://nth.ink" "你网站的运行根目录/www/wwwroot/ericnth";
pagespeed LoadFromFileRuleMatch allow \.css$;
pagespeed LoadFromFileRuleMatch allow \.jpeg$;
pagespeed LoadFromFileRuleMatch allow \.jpg$;
pagespeed LoadFromFileRuleMatch allow \.png$;
pagespeed LoadFromFileRuleMatch allow \.gif$;
pagespeed LoadFromFileRuleMatch allow \.js$;
pagespeed SslCertDirectory 你网站的SSL证书存放路径,如/www/server/panel/vhost/cert/nth.ink/;
pagespeed SslCertFile 你网站SSL证书的pem文件存放位置,如/www/server/panel/vhost/cert/nth.ink/fullchain.pem;
# 重置 http Vary 头
pagespeed RespectVary on;
# html字符转小写
pagespeed LowercaseHtmlNames on;
# 压缩带 Cache-Control: no-transform 标记的资源
pagespeed DisableRewriteOnNoTransform off;
# 相对URL
pagespeed PreserveUrlRelativity on;
# 开启 https
pagespeed FetchHttps enable,allow_self_signed;
# 配置服务器缓存位置和自动清除触发条件(空间大小、时限)
pagespeed FileCachePath "/var/ngx_pagespeed/";
pagespeed FileCacheSizeKb 2048000;
pagespeed FileCacheCleanIntervalMs 43200000;
pagespeed FileCacheInodeLimit 500000;
# 过滤规则
pagespeed RewriteLevel PassThrough;
# pagespeed RewriteLevel OptimizeForBandwidth;
# 不需过滤的目录或文件
pagespeed Disallow "*/wp-admin/*";
pagespeed Disallow "*/wp-login.php*";
pagespeed Disallow "*://googleads*";
# 移除不必要的url前缀,开启可能会导致某些自动加载功能失效
#pagespeed EnableFilters trim_urls;
# 移除 html 空白
pagespeed EnableFilters collapse_whitespace;
# 移除 html 注释
pagespeed EnableFilters remove_comments;
# DNS 预加载
pagespeed EnableFilters insert_dns_prefetch;
# 延迟加载 JavaScript
pagespeed EnableFilters defer_javascript;
# 合并CSS
#pagespeed EnableFilters combine_css;
# 压缩CSS
pagespeed EnableFilters rewrite_css;
# 重写CSS,优化加载渲染页面的CSS规则
pagespeed EnableFilters prioritize_critical_css;
# google字体直接写入html 目的是减少浏览器请求和DNS查询
pagespeed EnableFilters inline_google_font_css;
# 压缩 js
pagespeed EnableFilters rewrite_javascript;
# 合并 js
#pagespeed EnableFilters combine_javascript;
# 重写样式属性
pagespeed EnableFilters rewrite_style_attributes;
# 压缩图片
pagespeed EnableFilters rewrite_images;
# 图片预加载
pagespeed EnableFilters inline_preview_images;
#图片懒加载
pagespeed EnableFilters lazyload_images;
# 调整图片大小
pagespeed EnableFilters resize_images;
# 移动端图片自适应重置
pagespeed EnableFilters resize_mobile_images;
# 雪碧图片,图标很多的时候很有用
pagespeed EnableFilters sprite_images;
# 扩展缓存 改善页面资源的可缓存性
pagespeed EnableFilters extend_cache;
# 去除@import
pagespeed EnableFilters flatten_css_imports;
# 不将规则应用在 wp-admin目录 和 wplogin.php页面
pagespeed Disallow "*/wp-admin/*";
pagespeed Disallow "*/wp-login.php*";
# 风险指数高,不建议开启
#pagespeed EnableFilters local_storage_cache;
# 不能删
location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" {
add_header "" "";
}
location ~ "^/ngx_pagespeed_static/" { }
location ~ "^/ngx_pagespeed_beacon$" { }
location /ngx_pagespeed_statistics {
allow 127.0.0.1;
deny all;
}
location /ngx_pagespeed_global_statistics {
allow 127.0.0.1;
deny all;
}
location /ngx_pagespeed_message {
allow 127.0.0.1;
deny all;
}
location ~ ^/pagespeed_global_admin {
allow 127.0.0.1;
deny all;
}
pagespeed StatisticsPath /ngx_pagespeed_statistics;
pagespeed MessagesPath /ngx_pagespeed_message;
pagespeed ConsolePath /pagespeed_console;
pagespeed AdminPath /pagespeed_admin;
# 控制台 可通过 http://domain.com/ngx_pagespeed_admin 来查看控制台
pagespeed Statistics on;
pagespeed StatisticsLogging off;
pagespeed LogDir /var/log/pagespeed;
location /pagespeed_console {
allow 127.0.0.1;
deny all;
}
pagespeed AdminPath /ngx_pagespeed_admin;
location ~ ^/pagespeed_admin {
allow 127.0.0.1;
deny all;
}
# 日志限制
pagespeed StatisticsLoggingIntervalMs 60000;
pagespeed StatisticsLoggingMaxFileSizeKb 1024;
#webp
pagespeed EnableFilters convert_png_to_jpeg;
pagespeed EnableFilters convert_jpeg_to_webp;
pagespeed EnableFilters convert_to_webp_animated;
pagespeed EnableFilters convert_to_webp_lossless;
pagespeed EnableFilters recompress_images;
#memcached,没有的话请去掉
pagespeed MemcachedThreads 1;
pagespeed MemcachedServers "127.0.0.1:11211";
#Redis,没有的话请去掉
pagespeed RedisServer "127.0.0.1:6379";
大家可以自行设定on或off,也可以到网上搜索配置。注释(#)也可以自行打开关闭。
谷歌给出的官方文档,大家也可以进行参考: https://www.modpagespeed.com/examples/
关于作者Tianheng Ni
- 卑微站长23564~ 苣蒻OIer,电脑爱好者,喜欢C++编程/折腾网站
- Email: eric_ni2008@163.com
- 注册于: 2020-04-05 07:11:36