服务器性能优化(三) --- Nginx的ngx_pagespeed安装

作为Nginx组件,ngx_pagespeed将重写你的网页,让用户以更快的速度进行访问。重写的工作包括压缩图片、缩减CSS和JavaScript、扩展缓存时间,同样还包括其它一些最佳实践:
  • 优化缓存——整合应用程序的数据和逻辑
  • 最小化round-trip次数——削减连续的请求/响应周期数
  • 最小化请求开销——削减上传大小
  • 最小化负载大小——削减响应、下载及缓存页面大小
  • 优化浏览器渲染——改善浏览器页面布局
  • 移动方面的优化——优化站点移动网络和设备方面的相关特性

    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规则。
    • 与Apache网站服务器不一样,Nginx模块无法在运行时动态加载,而是必须在编译时加载。截至本文截稿时,ngx_pagespeed模块并未内置在随主要Linux发行版(比如Fedora 19)发布的Nginx程序包中。因而,想使用Nginx中的PageSpeed,你需要利用源代码来构建Nginx。

    一. 安装相关依赖
    yum install gcc-c++ pcre-dev pcre-devel zlib-devel make -y
    yum install libxml2 libxslt libxml2-devel libxslt-devel -y
    yum install gd-devel -y 
    yum install perl perl-devel perl-ExtUtils-Embed -y 
    yum install geoip-devel  geoip -y

    二. 下载解压pagespeed模块
    cd /root/
    wget https://github.com/pagespeed/ngx_pagespeed/archive/master.zip
    unzip /root/ngx_pagespeed-master.zip
    cp /root/1.9.32.2.tar.gz /root/ngx_pagespeed-master
    cd /root/ngx_pagespeed-master/
    wget https://dl.google.com/dl/page-speed/psol/1.9.32.2.tar.gz
    tar -xzvf 1.9.32.2.tar.gz
    cd 
    

    三. 下载nginx并安装
    wget http://nginx.org/download/nginx-1.7.8.tar.gz
    tar -zxvf /root/nginx-1.7.8.tar.gz
    cd /root/nginx-1.7.8
    
    ./configure --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --pid-path=/var/run/nginx.pid --lock-path=/var/lock/subsys/nginx --user=nginx --group=nginx --with-file-aio --with-ipv6 --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module --with-http_image_filter_module --with-http_geoip_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_stub_status_module --with-http_perl_module --with-mail --with-mail_ssl_module --with-debug --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic' --with-ld-opt=-Wl,-E --add-module=/root/ngx_pagespeed-master
    
    make
    make install

    四. 开启nginx的pagespeed模块
    在nginx的服务的配置文件中加入
    pagespeed on;
    pagespeed FileCachePath /tmp/ngx_pagespeed_cache;
    pagespeed RewriteLevel CoreFilters;
    pagespeed UseExperimentalJsMinifier on;
    
    pagespeed EnableFilters add_head;
    pagespeed EnableFilters extend_cache;
    pagespeed EnableFilters fallback_rewrite_css_urls;
    pagespeed EnableFilters flatten_css_imports;
    pagespeed EnableFilters inline_css;
    pagespeed EnableFilters inline_import_to_link;
    pagespeed EnableFilters inline_javascript;
    pagespeed EnableFilters local_storage_cache;
    pagespeed EnableFilters collapse_whitespace,remove_comments;
    pagespeed EnableFilters outline_css;
    pagespeed EnableFilters flatten_css_imports;
    pagespeed EnableFilters move_css_above_scripts;
    pagespeed EnableFilters move_css_to_head;
    pagespeed EnableFilters outline_javascript;
    pagespeed EnableFilters combine_javascript;
    pagespeed EnableFilters combine_css;
    pagespeed EnableFilters rewrite_javascript;
    pagespeed EnableFilters rewrite_css,sprite_images;
    pagespeed EnableFilters rewrite_style_attributes;
    pagespeed EnableFilters rewrite_images;
    pagespeed EnableFilters recompress_images;
    pagespeed EnableFilters resize_images;
    pagespeed EnableFilters convert_meta_tags;
    pagespeed EnableFilters lazyload_images;
    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; }

    五. 创建临时目录
    mkdir /tmp/ngx_pagespeed_cache
    chown -R www:www /tmp/ngx_pagespeed_cache
    chmod -R 777 /tmp/ngx_pagespeed_cache


    六. 重启nginx
    service nginx restart




  • 你可能感兴趣的:(服务器性能优化(三) --- Nginx的ngx_pagespeed安装)