生命不息
折腾不止

为nginx配置nginx_pagespeed优化访问速度

ngx_pagespeed`是可以对网页进行加速,压缩图片、压缩合并CSS和JS,对网页加速效果明显。 
本教程环境是运维笔记的oneinstack 

下面开始教程,其中有一些网络上安装ngx_pagespeed的坑,我会一一说明
首先进入源码目录
  1. cd /root/oneinstack/src
下载 ngx_pagespeed模块
  1. wget https://github.com/pagespeed/ngx_pagespeed/archive/latest-beta.tar.gz
进行解压
  1. tar xzf latest-beta.tar.gzcd ngx_pagespeed-latest-beta/
这个地方需要下载一个google的扩展库
地址是:https://dl.google.com/dl/page-speed/psol/1.12.34.2-x64.tar.gz

在这我们先不进行下载,这地方有个坑,要下载pagespeed指定的版本的psol版本。 

特别说明一下,psol的版本要根据ngx_pagespeed的要求来下载。
如何查看要求的版本,我们先不附加psol库来进行编译
  1. cd ..或是cd /root/oneinstack/src
查看一下己装的nginx的版本
  1. nginx -V
显示如下:
  1. nginx version: nginx/1.10.3
  2. built by gcc 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC)
  3. built with OpenSSL 1.0.2k  26 Jan 2017
  4. TLS SNI support enabled
  5. configure arguments: --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_v2_module --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module --with-http_flv_module --with-http_mp4_module --with-openssl=../openssl-1.0.2k --with-pcre=../pcre-8.39 --with-pcre-jit --with-ld-opt=-ljemalloc
可以看到nginx的版本是1.10.3
解压nginx
  1. tar xzf nginx-1.10.3.tar.gz
进入 nginx目录
  1. cd nginx-1.10.3
上面的nginx -V的时候可以查看到之前安装nginx的编译信息,现在主要在末尾添加下面这段
  1. --add-module=../ngx_pagespeed-latest-beta
例如这样的:
  1. ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_v2_module --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module --with-http_flv_module --with-http_mp4_module --with-openssl=../openssl-1.0.2k --with-pcre=../pcre-8.39 --with-pcre-jit --with-ld-opt=-ljemalloc --add-module=../ngx_pagespeed-latest-beta
切记上面的不能盲目复制,一定要根据自己的nginx -V后的编译信息进行。
然后看到编译不通过的信息,如下
 pagespeed.png
要求安装psol扩展,切记网络上有些教程是早期的教程,可能导致下载到的psol是早期版本,编译不能通过。
我们按照要求下载psol
  1. wget [url]https://dl.google.com/dl/page-speed/psol/1.12.34.2-x64.tar.gz[/url]
解压到ngx_pagespeed-latest-beta/目录
  1. tar xzf 1.12.34.2-x64.tar.gz -C /root/oneinstack/src/ngx_pagespeed-latest-beta/
现在,再进行编译
  1. ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_v2_module --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module --with-http_flv_module --with-http_mp4_module --with-openssl=../openssl-1.0.2k --with-pcre=../pcre-8.39 --with-pcre-jit --with-ld-opt=-ljemalloc --add-module=../ngx_pagespeed-latest-beta
OK。configure通过
下面进行编译
  1. make
这个地方不需要make install
备份旧的nginx
  1. mv /usr/local/nginx/sbin/nginx{,_date +%F`}
复制新的nginx(不可退出nginx-1.10.3目录)
  1. cp objs/nginx /usr/local/nginx/sbin
查看ngx_pagespeed安装情况
  1. nginx -V 2>&1 | grep -o ngx_pagespeed
显示ngx_pagespeed表示已经安装成功。

pagespeed.png 
 

下面是配置
将下面复制重命名为pagespeed.conf放到你的虚拟配置文件下
  1. server {
  2. # on 启用,off 关闭
  3. pagespeed on;
  4. # memcached优化,如果没有memcached优化请删去
  5. pagespeed MemcachedThreads 1;
  6. pagespeed MemcachedServers "localhost:11211";
  7. # 重置 http Vary 头
  8. pagespeed RespectVary on;
  9. # html字符转小写
  10. pagespeed LowercaseHtmlNames on;
  11. # 压缩带 Cache-Control: no-transform 标记的资源
  12. #pagespeed DisableRewriteOnNoTransform off;
  13. # 相对URL
  14. #pagespeed PreserveUrlRelativity on;
  15. pagespeed XHeaderValue "Powered By JaxsonWang";
  16. # 开启 https
  17. #pagespeed FetchHttps enable;
  18. # 配置服务器缓存位置和自动清除触发条件(空间大小、时限)
  19. pagespeed FileCachePath "/var/ngx_pagespeed/";
  20. pagespeed FileCacheSizeKb 2048000;
  21. pagespeed FileCacheCleanIntervalMs 43200000;
  22. pagespeed FileCacheInodeLimit 500000;
  23. # 过滤规则
  24. pagespeed RewriteLevel PassThrough;
  25. # 过滤WordPress的/wp-admin/目录(可选配置,可参考使用)
  26. pagespeed Disallow "*/wp-admin/*";
  27. pagespeed Disallow "*/wp-login.php*";
  28. # 过滤typecho的/admin/目录(可选配置,可参考使用)
  29. pagespeed Disallow "*/admin/*";
  30. # 移除不必要的url前缀,开启可能会导致某些自动加载功能失效
  31. #pagespeed EnableFilters trim_urls;
  32. # 移除 html 空白
  33. pagespeed EnableFilters collapse_whitespace;
  34. # 移除 html 注释
  35. pagespeed EnableFilters remove_comments;
  36. # DNS 预加载
  37. pagespeed EnableFilters insert_dns_prefetch;
  38. # 压缩CSS
  39. pagespeed EnableFilters rewrite_css;
  40. # 合并CSS
  41. pagespeed EnableFilters combine_css;
  42. # 重写CSS,优化加载渲染页面的CSS规则
  43. pagespeed EnableFilters prioritize_critical_css;
  44. # google字体直接写入html 目的是减少浏览器请求和DNS查询
  45. pagespeed EnableFilters inline_google_font_css;
  46. # 压缩js
  47. pagespeed EnableFilters rewrite_javascript;
  48. # 合并js
  49. pagespeed EnableFilters combine_javascript;
  50. # 优化内嵌样式属性
  51. #pagespeed EnableFilters rewrite_style_attributes;
  52. # 压缩图片
  53. #pagespeed EnableFilters rewrite_images;
  54. # 不加载显示区域以外的图片
  55. pagespeed LazyloadImagesAfterOnload off;
  56. # 图片预加载
  57. pagespeed EnableFilters inline_preview_images;
  58. # 移动端图片自适应重置
  59. pagespeed EnableFilters resize_mobile_images;
  60. # 图片延迟加载
  61. pagespeed EnableFilters lazyload_images;
  62. # 雪碧图片,图标很多的时候很有用
  63. #pagespeed EnableFilters sprite_images;
  64. # 扩展缓存 改善页面资源的可缓存性
  65. pagespeed EnableFilters extend_cache;
  66. # 不能删
  67. location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" { add_header "" ""; }
  68. location ~ "^/ngx_pagespeed_static/" { }
  69. location ~ "^/ngx_pagespeed_beacon[        DISCUZ_CODE_17        ]quot; { }
  70. location /ngx_pagespeed_statistics { allow 127.0.0.1; deny all; }
  71. location /ngx_pagespeed_message { allow 127.0.0.1; deny all; }
  72. }
最后重启nginx
  1. service nginx restart


微信扫描下方的二维码阅读本文

赞(1) 赞赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权,转载请联系作者。
文章名称:《为nginx配置nginx_pagespeed优化访问速度》
文章链接:https://wangjunwei.com/linux/93.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 1

  1. #1

    66666

    钟金平7年前 (2017-08-26)回复

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

微信扫一扫

登录

找回密码

注册