BT(宝塔面板)6.X自编译nginx前端优化模块ngx_pagespeed-让网站速度在再给力一点

admin

发表文章数:3074

首页 » 网络资源 » Linux » 正文

转载自大鸟博客:daniao.org

 

宝塔官方一直没有在面板里面默认集成PageSpeed模块,大鸟估计是PageSpeed模块在国内有点水土不服,但是这并不能影响小伙伴么尝鲜。大鸟自己也憋不住给nginx编译了这个模块,发现速度提升还是很明显的。

大鸟昨天说了如何编译ngx_lua_waf web 应用防火墙模块,那么今天编译PageSpeed模块也还是一样。ngx_pagespeed 是一个非常不错的 Nginx 拓展,大鸟也就不去多介绍这玩意了,如果不懂,就自己百度去。

第一、备份nginx

你可以使用SSH工具以ROOT权限登陆之后下载备份nginx,也可以直接使用命令备份nginx。

1、查看nginx位置

  1. ps -elf | grep nginx

2、进入宝塔面板的nginx目录

  1. cd /www/server/nginx/sbin/

3、备份宝塔nginx

  1. cp nginx nginx.bak

4、进入root目录

  1. cd /root

第二、自动安装

  1. 安装文档
    https://www.modpagespeed.com/doc/build_ngx_pagespeed_from_source
  2. 使用谷歌给出的自动安装脚本安装!
    1. bash <(curl -f -L -sS https://ngxpagespeed.com/install)
    2. –nginx-version latest

如果有选择的时候,我们需要选择Y,回车即可继续安装。大鸟的宝塔面板环境是nginx1.14.1 php7.2,貌似低版本的pagespeed安装会有错误,大鸟这里安装的是page-speed 1.13.35.2。如果我们安装新版本的不成功,可以试试低版本的( 1.13.3 降至 1.12.0)或者更低的版本。BT(宝塔面板)6.X自编译nginx前端优化模块ngx_pagespeed-让网站速度在再给力一点

第三、重新编译 nginx

查看当前nginx的加载所的模块,在编译加载的PageSpeed模块的时候仍需加载这些模块(下面的路径是宝塔默认的nginx的路径,其他面板请自行更改路径)

  1. cd /www/server/nginx/src

查看宝塔编译好的nginx加载模块,在重新编译加载新模块时候仍需加载这些模块

  1. nginx -V

注意这个命令是大写的V,如果小写v是不会显示模块的,这里会显示出所有的已经编译的模块。将./configure arguents:之后的内容复制到记事本备用。大鸟这里是:

  1. –user=www –group=www –prefix=/www/server/nginx –with-openssl=/www/server/nginx/src/openssl –add-module=/www/server/nginx/src/ngx_devel_kit –add-module=/www/server/nginx/src/lua_nginx_module –add-module=/www/server/nginx/src/ngx_cache_purge –add-module=/www/server/nginx/src/nginx-sticky-module –add-module=/www/server/nginx/src/nginx-http-concat –with-http_stub_status_module –with-http_ssl_module –with-http_v2_module –with-http_image_filter_module –with-http_gzip_static_module –with-http_gunzip_module –with-stream –with-stream_ssl_module –with-ipv6 –with-http_sub_module –with-http_flv_module –with-http_addition_module –with-http_realip_module –with-http_mp4_module –with-ld-opt=-Wl,-E –with-pcre=pcre-8.40 –with-ld-opt=-ljemalloc

 

第四、编译内容

  1. ./configure 上一步记事本中的备用内容 –add-module=/root/incubator-pagespeed-ngx-latest-stable

注意–add-module前面是有空格的,./configure后面也有空格。全部代码如下:

  1. –user=www –group=www –prefix=/www/server/nginx –with-openssl=/www/server/nginx/src/openssl –add-module=/www/server/nginx/src/ngx_devel_kit –add-module=/www/server/nginx/src/lua_nginx_module –add-module=/www/server/nginx/src/ngx_cache_purge –add-module=/www/server/nginx/src/nginx-sticky-module –add-module=/www/server/nginx/src/nginx-http-concat –with-http_stub_status_module –with-http_ssl_module –with-http_v2_module –with-http_image_filter_module –with-http_gzip_static_module –with-http_gunzip_module –with-stream –with-stream_ssl_module –with-ipv6 –with-http_sub_module –with-http_flv_module –with-http_addition_module –with-http_realip_module –with-http_mp4_module –with-ld-opt=-Wl,-E –with-pcre=pcre-8.40 –with-ld-opt=-ljemalloc –add-module=/root/incubator-pagespeed-ngx-latest-stable

 

/root/incubator-pagespeed-ngx-latest-stable,这里是编译文件放的路径,如果你是存放到别的地方,注意修改路径。我们回车,等待命令结束,输入编译命令:

  1. make

编译安装过程大概要5分钟左右,还是有点长的。完成后将系统中原有的nginx用重新编译生成的nginx文件替换。

1、停止nginx

  1. service nginx stop

2、删除原来的nginx,操作之前请确认自己的nginx已经备份

  1. rm -rf /www/server/nginx/sbin/nginx

3、复制新编译的nginx

  1. cp /www/server/nginx/src/objs/nginx /www/server/nginx/sbin/

4、启动nginx

  1. service nginx start

第五、检查模块pagespeed

我们可以在root目录,用命令nginx -V来查看所有的编译模块里面是否有我们刚刚编译的pagespeed模块。BT(宝塔面板)6.X自编译nginx前端优化模块ngx_pagespeed-让网站速度在再给力一点

这里已经能看到心编译的模块了,既然已经安装好,下面就来配置,测试啦。

第六、配置pagespeed

在网站-设置-网站配置里面添加配置代码。

  1. 下面是我用的pagespeed配置,缓存路径为/var/cache/ngx_pagespeed,手动刷新缓存可以删掉这个目录然后重启nginx:
  2. pagespeed on;
  3. pagespeed FileCachePath /var/cache/ngx_pagespeed;
  4. # setting
  5. # X-Header 值,用于判断是否生效
  6. pagespeed XHeaderValue “Powered By www.xxx.com”;
  7. # 压缩CSS
  8. pagespeed EnableFilters rewrite_css;
  9. # 合并CSS
  10. pagespeed EnableFilters combine_css;
  11. # 重写CSS,优化加载渲染页面的CSS规则
  12. pagespeed EnableFilters prioritize_critical_css;
  13. # google字体直接写入html 目的是减少浏览器请求和DNS查询
  14. pagespeed EnableFilters inline_google_font_css;
  15. # 压缩js
  16. pagespeed EnableFilters rewrite_javascript;
  17. # 合并js
  18. pagespeed EnableFilters combine_javascript;
  19. # 重置 http Vary 头
  20. pagespeed RespectVary on;
  21. # html字符转小写
  22. pagespeed LowercaseHtmlNames on;
  23. # 开启 https
  24. pagespeed FetchHttps enable,allow_self_signed,allow_unknown_certificate_authority,allow_certificate_not_yet_valid;
  25. # 过滤规则
  26. pagespeed RewriteLevel PassThrough;
  27. # 移除 html 空白
  28. pagespeed EnableFilters collapse_whitespace;
  29. # 移除 html 注释
  30. pagespeed EnableFilters remove_comments;
  31. # DNS 预加载
  32. pagespeed EnableFilters insert_dns_prefetch;
  33. # 优化内嵌样式属性
  34. pagespeed EnableFilters rewrite_style_attributes;
  35. # 压缩图片
  36. pagespeed EnableFilters rewrite_images;
  37. # 不加载显示区域以外的图片
  38. pagespeed LazyloadImagesAfterOnload off;
  39. # 图片预加载
  40. pagespeed EnableFilters inline_preview_images;
  41. # 移动端图片自适应重置
  42. pagespeed EnableFilters resize_mobile_images;
  43. # 图片延迟加载
  44. pagespeed EnableFilters lazyload_images;
  45. # 雪碧图片,图标很多的时候很有用
  46. pagespeed EnableFilters sprite_images;
  47. # 扩展缓存 改善页面资源的可缓存性
  48. pagespeed EnableFilters extend_cache;
  49. pagespeed EnableFilters combine_javascript;
  50. pagespeed XHeaderValue “Powered By ngx_pagespeed”;
  51. pagespeed SupportNoScriptEnabled false;
  52. # filters
  53. pagespeed RewriteLevel CoreFilters;
  54. pagespeed EnableFilters remove_comments,collapse_whitespace;
  55. # admin直接访问 <域名>/pagespeed_admin 就可以打开管理员界面了。
  56. pagespeed Statistics on;
  57. pagespeed StatisticsLogging off;
  58. pagespeed LogDir /var/log/pagespeed;
  59. pagespeed AdminPath /pagespeed_admin;
  60. # Configuring the File Cache
  61. pagespeed FileCacheSizeKb 1024000; # 1GB
  62. pagespeed FileCacheCleanIntervalMs 3600000; # 1h
  63. pagespeed FileCacheInodeLimit 500000;
  64. # Configuring the in-memory LRU Cache
  65. pagespeed LRUCacheKbPerProcess 1024;
  66. pagespeed LRUCacheByteLimit 16384;
  67. pagespeed HttpCacheCompressionLevel 3;
  68. pagespeed EnableCachePurge on;

 

防止网站出现问题,我们最好把压缩,合并js这个功能禁用掉。这里大家注意下。大鸟这里用的是wordpress,这贴一个wordpress的版本的配置代码!

  1. # 启用ngx_pagespeed
  2. pagespeed on;
  3. pagespeed FileCachePath /var/cache/ngx_pagespeed;
  4. # 禁用CoreFilters
  5. pagespeed RewriteLevel PassThrough;
  6. # X-Header 值,用于判断是否生效
  7. pagespeed XHeaderValue “Powered By www.daniao.org”;
  8. # 过滤规则
  9. #pagespeed RewriteLevel OptimizeForBandwidth;
  10. # 不需过滤的目录或文件
  11. pagespeed Disallow “*/wp-admin/*”;
  12. pagespeed Disallow “*/wp-login.php*”;
  13. # 启用压缩空白过滤器
  14. pagespeed EnableFilters collapse_whitespace;
  15. # 启用JavaScript库卸载
  16. pagespeed EnableFilters canonicalize_javascript_libraries;
  17. # 把多个CSS文件合并成一个CSS文件
  18. #pagespeed EnableFilters combine_css;
  19. # 把多个JavaScript文件合并成一个JavaScript文件
  20. #pagespeed EnableFilters combine_javascript;
  21. # 删除带默认属性的标签
  22. pagespeed EnableFilters elide_attributes;
  23. # 改善资源的可缓存性
  24. pagespeed EnableFilters extend_cache;
  25. # 更换被导入文件的@import,精简CSS文件
  26. pagespeed EnableFilters flatten_css_imports;
  27. pagespeed CssFlattenMaxBytes 5120;
  28. # 延时加载客户端看不见的图片
  29. pagespeed EnableFilters lazyload_images;
  30. # 启用JavaScript缩小机制
  31. pagespeed EnableFilters rewrite_javascript;
  32. # 启用图片优化机制
  33. pagespeed EnableFilters rewrite_images;
  34. # 预解析DNS查询
  35. pagespeed EnableFilters insert_dns_prefetch;
  36. # 重写CSS,首先加载渲染页面的CSS规则
  37. pagespeed EnableFilters prioritize_critical_css;

 

第七,测试效果

打开网页看源码,刷新下,看看有没有什么变化。BT(宝塔面板)6.X自编译nginx前端优化模块ngx_pagespeed-让网站速度在再给力一点

随便搜索下 pagespeed,可以发现源码大部分都已经被替换了,可以看到确实是生效了。

第八、总结

这个模块还是挺占用资源的,如果是什么单核的低配置的,就不要搞了。不过启用之后,效果确实不错。如果想折腾的,不妨去试试看!

未经允许不得转载:作者:admin, 转载或复制请以 超链接形式 并注明出处 夜河资源网
原文地址:《BT(宝塔面板)6.X自编译nginx前端优化模块ngx_pagespeed-让网站速度在再给力一点》 发布于2019-12-16

分享到:
赞(0) 打赏

评论 抢沙发

2 + 2 =


撰写不易~如果您觉得文章对您有帮助的话可以打赏我哦~谢谢亲亲~

支付宝扫一扫打赏

微信扫一扫打赏

外服网游加速器破解版
包含腾讯网游加速器、海豚网游加速器等八款知名加速器,可加速外服游戏,永久包售后包更新,不定时添加新款破解版加速器!
切换注册

登录

忘记密码 ?

切换登录

注册