linux静态加速,nginx使用pagespeed模块给静态文件加速

ngx_pagespeed模块的主要功能大致有:

1)图像优化:剥离元数据、动态调整,重新压缩

2)CSS和JavaScript压缩、合并、级联、内联

3)小资源内联

4)推迟图像和JavaScript加载

5)对HTML重写、压缩空格、去除注释等

6)提升缓存周期

作为Nginx组件,ngx_pagespeed将重写你的网页,让用户以更快的速度进行访问。重写的工作包括压缩图片、缩减CSS和JavaScript、扩展缓存时间,同样还包括其它一些最佳实践:

1)优化缓存----整合应用程序的数据和逻辑

2)最小化round-trip次数----削减连续的请求/响应周期数

3)最小化请求开销----削减上传大小

4)最小化负载大小----削减响应、下载及缓存页面大小

5)优化浏览器渲染----改善浏览器页面布局

6)移动方面的优化----优化站点移动网络和设备方面的相关特性

第一步:下载pagespeed nginx模块

yum install gcc-c++ pcre-devel zlib-devel make unzip libuuid-devel

wget http://linuxsoft.cern.ch/cern/slc6X/x86_64/RPM-GPG-KEY-cern

wget -O /etc/yum.repos.d/slc6-devtoolset.repo http://linuxsoft.cern.ch/cern/devtoolset/slc6-devtoolset.repo

yum install devtoolset-2

PS_NGX_EXTRA_FLAGS="--with-cc=/opt/rh/devtoolset-2/root/usr/bin/gcc"

wget https://github.com/apache/incubator-pagespeed-ngx/archive/latest-stable.tar.gz

tar -xvf latest-stable.tar.gz

cd incubator-pagespeed-ngx-latest-stable

psol_url=https://dl.google.com/dl/page-speed/psol/latest-stable.tar.gz

[ -e scripts/format_binary_url.sh ] && psol_url=$(scripts/format_binary_url.sh PSOL_BINARY_URL)

wget ${psol_url}

tar -xzvf $(basename ${psol_url})

第二步:修改lnmp脚本,安装或更新nginx

vi include/nginx.sh在23和25行结尾加上,vi include/upgrade_nginx.sh在50和52行结尾加上:

--add-module=/root/incubator-pagespeed-ngx-latest-stable --with-cc=/opt/rh/devtoolset-2/root/usr/bin/gcc

/root/incubator-pagespeed-ngx-latest-stable该路径为pagespeed下载的目录。

第三步:写pagespeed配置文件

cd /usr/local/nginx/conf/

vi pagespeed.conf

内容

# 启用ngx_pagespeed

pagespeed on;

pagespeed FileCachePath /tmp/pagespeed/;

# 禁用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;

# Example 禁止pagespeed 处理/ipython/目录 可选

#pagespeed Disallow"*/ipython/*";

第四步:nginx生效:

vi nginx.conf

写入

include pagespeed.conf;

nginx -t

nginx -s reload

注意:如果css、js更新请删除/tmp/pagespeed/目录下的文件才会在服务器生效

nginx模块下载地址:https://github.com/apache/incubator-pagespeed-ngx/releases

环境依赖包地址:http://linuxsoft.cern.ch/cern/slc6X/x86_64/

环境依赖包地址:http://linux.web.cern.ch/linux/devtoolset/#install

google测试网页速度的工具:https://developers.google.com/speed/pagespeed/insights/

google测试网页速度的工具(pwa):https://developers.google.com/web/tools/lighthouse/

官方安装教程:https://www.modpagespeed.com/doc/build_ngx_pagespeed_from_source

本次安装参考:http://www.btfw.org/linux/576.html

另一个版本的pagespeed.conf

# on 启用,off 关闭

pagespeed on;

# memcached优化,如果没有memcached优化请删去

pagespeed MemcachedThreads 1;

pagespeed MemcachedServers "localhost:11211";

# 重置 http Vary 头

pagespeed RespectVary on;

# html字符转小写

pagespeed LowercaseHtmlNames on;

# 压缩带 Cache-Control: no-transform 标记的资源

#pagespeed DisableRewriteOnNoTransform off;

# 相对URL

#pagespeed PreserveUrlRelativity on;

pagespeed XHeaderValue "Powered By JaxsonWang";

# 开启 https

#pagespeed FetchHttps enable;

# 配置服务器缓存位置和自动清除触发条件(空间大小、时限)

pagespeed FileCachePath "/var/ngx_pagespeed/";

pagespeed FileCacheSizeKb 2048000;

pagespeed FileCacheCleanIntervalMs 43200000;

pagespeed FileCacheInodeLimit 500000;

# 过滤规则

pagespeed RewriteLevel PassThrough;

# 过滤WordPress的/wp-admin/目录(可选配置,可参考使用)

pagespeed Disallow "*/wp-admin/*";

pagespeed Disallow "*/wp-login.php*";

# 过滤typecho的/admin/目录(可选配置,可参考使用)

pagespeed Disallow "*/admin/*";

# 移除不必要的url前缀,开启可能会导致某些自动加载功能失效

#pagespeed EnableFilters trim_urls;

# 移除 html 空白

pagespeed EnableFilters collapse_whitespace;

# 移除 html 注释

pagespeed EnableFilters remove_comments;

# DNS 预加载

pagespeed EnableFilters insert_dns_prefetch;

# 压缩CSS

pagespeed EnableFilters rewrite_css;

# 合并CSS

pagespeed EnableFilters combine_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 LazyloadImagesAfterOnload off;

# 图片预加载

pagespeed EnableFilters inline_preview_images;

# 移动端图片自适应重置

pagespeed EnableFilters resize_mobile_images;

# 图片延迟加载

pagespeed EnableFilters lazyload_images;

# 雪碧图片,图标很多的时候很有用

#pagespeed EnableFilters sprite_images;

# 扩展缓存 改善页面资源的可缓存性

pagespeed EnableFilters extend_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_message { allow 127.0.0.1; deny all; }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值