• 开启全站HTTPS。2017-04-29
  • 本站为非盈利性站点,所得收入全部用于网站服务器及其他费用。2015-10-15
  •    3年前 (2015-11-03)  网站建设 |   抢沙发  80 
    文章评分 1 次,平均分 5.0

     

    1、PageSpeed的功能特性

    PageSpeed模块可以使用数量众多的重写"过滤器",每个过滤器都可以选择性地开启/关闭,从而自动进行各种优化(比如,减小文档大小、减少HTTP请求数据、减少HTTP往返次数以及缩短DNS解析时间)。

    下面是ngx_pagespeed支持的其中一些过滤器。想了解支持的全部过滤器,请参阅官方文档。

    Collapse Whitespace(压缩空白):通过把HTML网页中的多处连续空白换成一处空白,减少带宽使用量。

    Canonicalize JavaScript Libraries(规范化转换JavaScript库):通过自动把流行的JavaScript库换成免费托管的JavaScript库(比如由谷歌托管),减少带宽使用量。

    Combine CSS(合并CSS):通过把多个CSS文件合并成一个CSS文件,减少HTTP请求数量。

    Combine JavaScript(合并JavaScript):通过把多个JavaScript文件合并成一个JavaScript文件,减少HTTP请求数量。

    Elide Attributes(省略属性):通过删除由默认属性指定的标签,缩小文档大小。

    Extend Cache(扩展缓存):通过优化网页资源的可缓存性,减少带宽使用量。

    Flatten CSS Imports(精简CSS导入):通过删除CSS文件中的@import,减少HTTP请求往返次数。

    Lazyload Images(延时加载图片):延时加载在客户端浏览器上看不见的图片。

    Minify JavaScript(缩小JavaScript):通过缩小JavaScript,减少带宽使用量。

    Optimize Images(优化图片):通过引入更多的内嵌图片、压缩图片,或者将GIF图片转换成PNG图片,优化图片分发。

    Pre-Resolve DNS(预解析DNS):通过预解析DNS,缩短DNS解析时间。

    Prioritize Critical CSS(优化加载关键CSS规则):重写CSS文件,以便首先加载渲染页面的CSS规则。

    2、下载解压PageSpeed模块

    cd /usr/local/src/
    wget https://github.com/pagespeed/ngx_pagespeed/archive/release-1.9.32.6-beta.zip
    unzip -q release-1.9.32.6-beta
    wget https://dl.google.com/dl/page-speed/psol/1.9.32.6.tar.gz
    tar xzf 1.9.32.6.tar.gz -C ngx_pagespeed-release-1.9.32.6-beta #解压出来的psol文件夹到上面release-1.9.32.6-beta文件夹内

    3、然后到nginx源码目录,添加以下代码重新编译nginx

    ./configure 最后面 添加 --add-module=../ngx_pagespeed-release-1.9.32.6-beta/
    make即可
    编译之后会在nginx/objs文件夹内生成一个新的nginx
    替换原有/usr/local/nginx/sbin下的nginx即可最后重启或者重载下nginx

    4、配置Nginx中的ngx_pagespeed模块

    PageSpeed过滤器,有两种不同的级别可供你选择:CoreFilters和PassThrough。除非有所指定,否则默认情况下使用CoreFilters。
    使用CoreFilters

    server {
    # 侦听的端口
    listen 80;
    # 服务器名称
    server_name bo-jin.com www.bo-jin.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

    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;
    }

    5、建立缓存文件夹并赋予nginx用户权限

    sudo mkdir /var/ngx_pagespeed_cache
    sudo chown www:www /var/ngx_pagespeed_cache

     

    除特别注明外,本站所有文章均为小浩博客原创,转载请注明出处来自https://www.xhsay.com/nginx-pagespeed.html

    关于
    小浩博客(www.xhsay.com)是由Tovey建立的个人站点,主要致力于整合并分享各种互联网及网站建设的资源。

    发表评论

    表情 格式

    暂无评论

    切换注册

    登录

    忘记密码 ?

    您也可以使用第三方帐号快捷登录

    切换登录

    注册