博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Google Pagespeed,自动压缩优化JS/CSS/Image
阅读量:6759 次
发布时间:2019-06-26

本文共 4001 字,大约阅读时间需要 13 分钟。

Google Pagespeed,自动压缩优化JS/CSS/Image 浏览:257 发布日期:2015/07/05 分类:技术分享 关键字: Nginx Appache Pagespeed 自动压缩优化JS/CSS/Image这个周末,把服务器的Nginx升级了下,并加入了Google Pagespeed模块效果很明显:页面加载的多个JS、CSS会自动合并压缩处理发现新版本的Pagespeed能很好的发现处理用户加载的第三方JS库,如jQuery发现新版本的lazyload_images处理的很好注意:CSS代码里含有背景图片这类的,要注意下图片的路径改为绝对路径,否则会导致图片引用部分404错误具体请参考:https://developers.google.com/speed/pagespeed/我的安装体验过程记录如下给大家分享:(1)检查下NGINX是否有modules目录,没有则创建下# mkdir /usr/local/nginx/modules(2) 下载和解压缩# cd /usr/local/src# NPS_VERSION=1.9.32.4# wget https://github.com/pagespeed/ngx_pagespeed/archive/release-${NPS_VERSION}-beta.zip# unzip release-${NPS_VERSION}-beta.zip# cp -a ngx_pagespeed-release-${NPS_VERSION}-beta /usr/local/nginx/modules/# rm -rf release-${NPS_VERSION}-beta.zip# rm -rf ngx_pagespeed-release-${NPS_VERSION}-beta# cd /usr/local/nginx/modules/ngx_pagespeed-release-${NPS_VERSION}-beta/# wget https://dl.google.com/dl/page-speed/psol/${NPS_VERSION}.tar.gz# tar -xzvf ${NPS_VERSION}.tar.gz # extracts to psol/(3)重新编译 Nginx with support for pagespeedhttp://nginx.org/en/download.html注意:如果已安装Nginx请使用升级脚本(修改增加配置选项)来重新升级编译NGINX# cd /usr/local/src# NGINX_VERSION=1.8.0# wget http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz# tar -xvzf nginx-${NGINX_VERSION}.tar.gz# cd nginx-${NGINX_VERSION}/# ./configure --add-module=/usr/local/nginx/modules/ngx_pagespeed-release-${NPS_VERSION}-beta# make# make install确认下ngx_pagespeed模块已添加到安装的Nginx系统上# /usr/local/nginx/sbin/nginx -V(4)创建将由Nginx写入的一个文件缓存目录$ mkdir /tmp/ngx_pagespeed_cache$ chown www:www /tmp/ngx_pagespeed_cache注意:可以将缓存目录的创建及清除工作交个启动任务脚本(5)修改配置Nginx中的ngx_pagespeed模块想启用并配置ngx_pagespeed,就要编辑Nginx配置的server部分。下面是我网站的配置,请参考common_pagespeed.conf文件是独立文件,在需要开启pagespeed服务的虚拟主机文件中加载此文件(请加载在php rewrite配置之前)------------------------------------conf/common_pagespeed.conf;------------------------------------# 启用ngx_pagespeedpagespeed on;pagespeed FileCachePath /tmp/ngx_pagespeed_cache;# 禁用CoreFilterspagespeed 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;# And no extraneous headers get set.location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" { add_header "" "";}location ~ "^/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_console { allow 127.0.0.1; deny all; }location ~ ^/pagespeed_admin { allow 127.0.0.1; deny all; }location ~ ^/pagespeed_global_admin { allow 127.0.0.1; deny all; }# Add no rewrite if you site set rewrite if ($request_uri ~ "(pagespeed_([^.]+)/(.*)?)") { break; }if ($request_uri ~ "(ngx_pagespeed_([^.]+)/(.*)?)") { break; }注意:ThinkPHP如果启用了rewrite,需要排除下Google Pagespeed 特殊的请求路径我在测试时,发现开启图片延时加载时,有很多图区启用延迟加载后请求会报404错误,发现请求都被转发交给ThinkPHP处理啦,解决方式如下在server{rewrite}脚本转发之前添加如下代码,我的一并放入conf/common_pagespeed.conf文件;if ($request_uri ~ "(pagespeed_([^.]+)/(.*)?)") { break; }if ($request_uri ~ "(ngx_pagespeed_([^.]+)/(.*)?)") { break; }注意:如果使用了TP官方麦当苗儿Thinkbox这个JQ插件你会发现,JS报错,请前端工程师排查了下发现是经过pagespeed自动压缩合并后,includeCss这个机制的问题,前端适当重写了下就OK啦前端还同时改写了他base.js库,注意js中的命名污染及变量范围,我们网站有几个专题页面,启用后发现JS报错,未启用前OK,最后基本都是这个原因优化效果如下自动处理页面加载的CSS文件,这个机制很赞,多个重用度高的外联CSS文件都被合并压缩了,重用度很低的文件直接添加到了html的header头 阿里云

 

 

转载地址:http://qmfeo.baihongyu.com/

你可能感兴趣的文章
Samba Server Configuration - Simple
查看>>
【ZZ】大型数据库应用解决方案总结 | 菜鸟教程
查看>>
Apr. 2th
查看>>
栅格那点儿事(四D)
查看>>
反向代理服务器的工作原理(转)
查看>>
MVC前后台获取Action、Controller、ID名方法 以及 路由规则
查看>>
fnb2b分支拉取注意事项
查看>>
电脑上没有iis组件,怎么才能安装iis?
查看>>
项目总结01:JSP mysql SpringMvc下中国省市县三级联动下拉框
查看>>
迁移学习(训练数据少的可怜时的办法)
查看>>
Codeforces 798A - Mike and palindrome
查看>>
Chapter 6、字符串(二)(1st,Mar.)
查看>>
4-3 求链式表的表长 (10分)
查看>>
[BZOJ 1491][NOI2007]社交网络(Floyd)
查看>>
# 学号 2017-2018-20172309 《程序设计与数据结构》实验1报告
查看>>
OrderOnline——数据库设计(已更新)
查看>>
(四)虚拟存储管理器的页面调度
查看>>
玩转Windows CPU占用时间 ——编程之美 读书笔记1.1
查看>>
苹果官方的图标大小的调整
查看>>
Maven整理
查看>>