阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Nginx PageSpeed模块配置和使用

174次阅读
没有评论

共计 5006 个字符,预计需要花费 13 分钟才能阅读完成。

Google Pagespeed 在作为一个 Nginx 的模块在研发这么久之后仍是 beta 版本,着实有点尴尬,不过也证明了该项目是成功的,最起码它仍在迭代,实际上在使用中,我们也碰到一些非模块本身的问题,譬如当它基于反向代理时模板的寻址,图片的 URL 重写…为此不得不对其做一些配置让它不是看起来多了一个协议,而是真正的能对页面的细节进行优化,最大限度的压榨服务器的的性能提高用户访问速度.. 

在实际使用中,它能够带来什么

    1、优化缓存并整合应用程序的数据和逻辑
    2、优化往返请求,降低请求开销,降低响应页面大小
    3、对 CSS Javascript 进行合并,这里相对来说要慎用(需要前期测试)
    4、DNS 预加载,延时加载图片等过滤器的支持(赞)
    5、等等 (少说多做) 

首先是我的目录结构

  1. ### 其他目录不作解释,source 目录即所有源码包的路径 ###
  2. [root@iPython software]# ls /software/
  3. mysql nginx php readme.txt sharelib source var_temp
  4. ### 库文件的支持 ###
  5. [root@ipython software]# ls /software/sharelib/
  6. curl freetype gd googlelibunwind googleperftools libiconv libjpeg libmcrypt libpng libtool libxml2 mhash ncurses openssl pcre zlib
  7. Nginx 版本:
  8. [root@ipython software]# curl I 127.0.0.1
  9. HTTP/1.1200 OK
  10. Server: nginx/1.7.5
  11. Date:Fri,07Nov201414:26:25 GMT
  12. ContentType: text/html
  13. Connection: keepalive
  14. Vary:AcceptEncoding 

下载地址和参考地址 (墙内就不建议点了):

ngxpagespeed for github

  1. [root@ipython source]# wget https://github.com/pagespeed/ngx_pagespeed/archive/release-1.9.32.1-beta.zip

 ngxpagespeed optimization library

  1. [root@ipython source]# wget https://dl.google.com/dl/page-speed/psol/1.9.32.1.tar.gz

ngxpagespeed official

  1. http://ngxpagespeed.com/ngx_pagespeed_example/

GoogleDevelopers

  1. https://developers.google.com/speed/docs/mod_pagespeed/build_ngx_pagespeed_from_source 

开始编译 Ngx-pagespeed

  1. ### 解开程序包 – 我在写这篇文章的时候,它似乎已经又更新了 … 建议参考的同学使用最新版 ###
  2. [root@ipython source]# unzip release1.9.32.1beta
  3. [root@ipython source]# cd ngx_pagespeedrelease1.9.32.1beta/
  4. ## 将 pagespeed 的优化库解压至当前目录 ##
  5. [root@ipython ngx_pagespeedrelease1.9.32.1beta]# tar zxf ../1.9.32.1.tar.gz C ./
  6. ## 此刻你的目录路径应该是这样的 ##
  7. [root@ipython ngx_pagespeedrelease1.9.32.1beta]# ls
  8. config cpp_feature LICENSE psol README.md scripts src test
  9. ## 重新编译 nginx##
  10. [root@ipython ngx_pagespeedrelease1.9.32.1beta]# cd ../nginx1.7.5/
  11. ### 请基于你自己的编译参数加上最后一条 –add-module , 切勿直接复制粘贴, 因为我的环境是基于自己弄的一键包来演示的 (如果你也需要?)###
  12. [root@ipython nginx1.7.5]#./configure prefix=/software/nginx user=nginx group=nginx addmodule=../ngx_pagespeedrelease1.9.32.1beta
  13. ## 预配置结束后执行 ##
  14. [root@ipython nginx1.7.5]# make
  15. ## 如果你是全新安装,在预配置结束后 make install,如果是重新编译,你可以这样 ##
  16. [root@ipython nginx1.7.5]# mv /software/nginx/sbin/nginx /software/nginx/sbin/nginx.bak
  17. [root@ipython nginx1.7.5]# cp objs/nginx /software/nginx/sbin/
  18. [root@ipython nginx1.7.5]# kill USR2 `cat /software/nginx/nginx.pid`
  19. [root@ipython nginx1.7.5]# kill QUIT `cat /software/nginx/nginx.pid.oldbin` 

让常用的配置开启 Pagespeed

  1. ## 注意那条 include##
  2. [root@ipython nginx1.7.5]# vi /software/nginx/conf/nginx.conf
  3. server
  4. {
  5. listen 80;
  6. server_name 127.0.0.1;
  7. include pagespeed.conf;
  8. … 我省略了好多行
  9. # 新增配置文件,配置后面再解释 #
  10. [root@ipython nginx1.7.5]# cat /software/nginx/conf/pagespeed.conf
  11. pagespeed on;
  12. pagespeed FileCachePath/software/var_temp/nginx/pagespeed/;
  13. ## 重启 nginx|reload 也可以 ##
  14. [root@ipython nginx1.7.5]# service nginx restart
  15. Stopping nginx:[ OK ]
  16. Starting nginx:[1107/230146:INFO:google_message_handler.cc(35)]No threading detected.Own threads:1Rewrite,1ExpensiveRewrite.
  17. [ OK ]
  18. ## 看看 http 头 和前面是不是不一样了 ##
  19. [root@ipython nginx1.7.5]# curl I 127.0.0.1
  20. HTTP/1.1200 OK
  21. Server: nginx/1.7.5
  22. ContentType: text/html
  23. Connection: keepalive
  24. Vary:AcceptEncoding
  25. Date:Fri,07Nov201415:03:29 GMT
  26. XPageSpeed:1.9.32.14238
  27. CacheControl: maxage=0,nocache
  28. ## 临时关闭 pagespeed##
  29. [root@ipython nginx1.7.5]# curl I 127.0.0.1?ModPagespeed=off
  30. HTTP/1.1200 OK
  31. Server: nginx/1.7.5
  32. Date:Fri,07Nov201415:04:56 GMT
  33. ContentType: text/html
  34. Connection: keepalive
  35. Vary:AcceptEncoding 

一个示例配置文件

  1. [root@ipython nginx1.7.5]# cat /software/nginx/conf/pagespeed.conf
  2. # 启用 ngx_pagespeed
  3. pagespeed on;
  4. pagespeed FileCachePath/software/var_temp/nginx/pagespeed/;
  5. # 禁用 CoreFilters
  6. pagespeed RewriteLevelPassThrough;
  7. # 启用压缩空白过滤器
  8. pagespeed EnableFilters collapse_whitespace;
  9. # 启用 JavaScript 库卸载
  10. pagespeed EnableFilters canonicalize_javascript_libraries;
  11. # 把多个 CSS 文件合并成一个 CSS 文件
  12. pagespeed EnableFilters combine_css;
  13. # 把多个 JavaScript 文件合并成一个 JavaScript 文件
  14. pagespeed EnableFilters combine_javascript;
  15. # 删除带默认属性的标签
  16. pagespeed EnableFilters elide_attributes;
  17. # 改善资源的可缓存性
  18. pagespeed EnableFilters extend_cache;
  19. # 更换被导入文件的 @import,精简 CSS 文件
  20. pagespeed EnableFilters flatten_css_imports;
  21. pagespeed CssFlattenMaxBytes5120;
  22. # 延时加载客户端看不见的图片
  23. pagespeed EnableFilters lazyload_images;
  24. # 启用 JavaScript 缩小机制
  25. pagespeed EnableFilters rewrite_javascript;
  26. # 启用图片优化机制
  27. pagespeed EnableFilters rewrite_images;
  28. # 预解析 DNS 查询
  29. pagespeed EnableFilters insert_dns_prefetch;
  30. # 重写 CSS,首先加载渲染页面的 CSS 规则
  31. pagespeed EnableFilters prioritize_critical_css;
  32. # Example 禁止 pagespeed 处理 /ipython/ 目录
  33. pagespeed Disallow“*/ipython/*”;

————————————– 分割线 ————————————–

CentOS 6.2 实战部署 Nginx+MySQL+PHP http://www.linuxidc.com/Linux/2013-09/90020.htm

使用 Nginx 搭建 WEB 服务器 http://www.linuxidc.com/Linux/2013-09/89768.htm

搭建基于 Linux6.3+Nginx1.2+PHP5+MySQL5.5 的 Web 服务器全过程 http://www.linuxidc.com/Linux/2013-09/89692.htm

CentOS 6.3 下 Nginx 性能调优 http://www.linuxidc.com/Linux/2013-09/89656.htm

CentOS 6.3 下配置 Nginx 加载 ngx_pagespeed 模块 http://www.linuxidc.com/Linux/2013-09/89657.htm

CentOS 6.4 安装配置 Nginx+Pcre+php-fpm http://www.linuxidc.com/Linux/2013-08/88984.htm

Nginx 安装配置使用详细笔记 http://www.linuxidc.com/Linux/2014-07/104499.htm

Nginx 日志过滤 使用 ngx_log_if 不记录特定日志 http://www.linuxidc.com/Linux/2014-07/104686.htm

————————————– 分割线 ————————————–

Nginx 的详细介绍 :请点这里
Nginx 的下载地址 :请点这里

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计5006字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中