宝塔面板Nginx安装Pagespeed模块 - IT Servis

宝塔面板Nginx安装Pagespeed模块

Ngx_PageSpeed简介:

ngx_pagespeed是一个开源的Nginx扩展模块,由Google创建,通过重写网页来减少延迟和带宽,从而帮助提高Web速度,主要的功能是针对前端页面而进行服务器端的优化,对前端设计人员来说,可以省去优化css、js以及图片的过程。当然,网上有的说“Ngx_PageSpeed对Nginx自身负载能力的提升基本是看不到的,甚至会因为进行服务器端的优化而使系统增加负载,但从减少客户请求数的角度去看,牺牲部分服务器性能还是值得的。”

由于这里是通过阿里云的宝塔面板来操作,宝塔面板默认已经支持了ngx_pagespeed,只是在Nginx.sh安装配置中没有启用ngx_pagespeed扩展的安装。

PageSpeed模块的功能有哪些呢?

  • 图像优化:剥离元数据、动态调整,重新压缩
  • CSS和JavaScript压缩、合并、级联、内联
  • 小资源内联
  • 推迟图像和JavaScript加载
  • 对HTML重写、压缩空格、去除注释等
  • 提升缓存周期

如何编译安装ngx_pagespeed?这里宝塔版本是7.1.1

1、宝塔面板找到路径:/www/server/panel/install,找到nginx.sh文件,当然如有必要你可以先对其进行更新。

更新nginx.sh命令:wget http://download.bt.cn/install/0/nginx.sh 或者通过我们的存档 itservis.org

2、打开nginx.sh文件,约246行找到增加代码 –add-module=${Setup_Path}/src/ngx-pagespeed ,去掉 ${ENABLE_NGX_PAGESPEED} 。

如下图:

宝塔面板Nginx安装Pagespeed模块

宝塔面板Nginx安装Pagespeed模块

修改后:

宝塔面板Nginx安装Pagespeed模块

宝塔面板Nginx安装Pagespeed模块

 

3、编译安装Nginx,安装前卸载旧版本,然后编译安装,可以在宝塔软件管理中安装,也可以在SSH中执行命令“ sh /www/server/panel/install/nginx.sh install 1.17 ”。

注意:pagespeed的编译对gcc有一定要求,更新gcc命令“ yum -y install gcc gcc-c++ autoconf automake ”。

这里遇到了错误:

宝塔面板Nginx安装Pagespeed模块

宝塔面板Nginx安装Pagespeed模块

./configuer/:error:can not define uint32_t

make: *** No rule to make target `build’, needed by `default’. Stop.

问题是之前阿里云CentOS改了核心为bbrplus,导致头文件模块丢失,更新yum即可,执行命令“ yum update ”。

更新yum后,检查一下nginx.sh是否是更改后的。然后继续命令编译安装Nginx“ sh /www/server/panel/install/nginx.sh install 1.17 ”。

宝塔面板Nginx安装Pagespeed模块

宝塔面板Nginx安装Pagespeed模块

编译安装Nginx完毕后,检查一下nginx模块是否含有pagespeed,命令“ /www/server/nginx/sbin/nginx -V ”。

宝塔面板Nginx安装Pagespeed模块

宝塔面板Nginx安装Pagespeed模块

 

4、在Nginx网站配置文件中添加pagespeed配置代码:修改项目conf文件,放到server里面就行,如果不知道加到哪,可以加入到 root /www/wwwroot/yourdomain.com; 的后面即可.

宝塔面板Nginx安装Pagespeed模块

宝塔面板Nginx安装Pagespeed模块

 

关于pagespeed配置代码:

on 启用,off 关闭
pagespeed off;

# 重置 http Vary 头
pagespeed RespectVary on;

# html字符转小写
pagespeed LowercaseHtmlNames on;

# 压缩带 Cache-Control: no-transform 标记的资源
#pagespeed DisableRewriteOnNoTransform off;

# 相对URL
pagespeed PreserveUrlRelativity on;
pagespeed XHeaderValue “Powered By ngx_pagespeed”;

# 开启 https
pagespeed FetchHttps enable;

# 配置服务器缓存位置和自动清除触发条件(空间大小、时限)
pagespeed FileCachePath “/var/ngx_pagespeed/”;
pagespeed FileCacheSizeKb 2048000;
pagespeed FileCacheCleanIntervalMs 43200000;
pagespeed FileCacheInodeLimit 500000;

# 过滤规则
# pagespeed RewriteLevel PassThrough;
pagespeed RewriteLevel OptimizeForBandwidth;

# 不需过滤的目录或文件
pagespeed Disallow “*/wp-admin/*”;
pagespeed Disallow “*/wp-login.php*”;

# 移除不必要的url前缀,开启可能会导致某些自动加载功能失效
#pagespeed EnableFilters trim_urls;

# 移除 html 空白
pagespeed EnableFilters collapse_whitespace;

# 移除 html 注释
pagespeed EnableFilters remove_comments;

# DNS 预加载
pagespeed EnableFilters insert_dns_prefetch;

# 延迟加载 JavaScript
pagespeed EnableFilters defer_javascript;

# 合并CSS
pagespeed EnableFilters combine_css;

# 压缩CSS
pagespeed EnableFilters rewrite_css;

# 重写CSS,优化加载渲染页面的CSS规则
pagespeed EnableFilters prioritize_critical_css;

# google字体直接写入html 目的是减少浏览器请求和DNS查询
pagespeed EnableFilters inline_google_font_css;

# 压缩 js
pagespeed EnableFilters rewrite_javascript;

# 合并 js
pagespeed EnableFilters combine_javascript;

# 重写样式属性
pagespeed EnableFilters rewrite_style_attributes;

# 压缩图片
pagespeed EnableFilters rewrite_images;

# 不加载显示区域以外的图片
pagespeed LazyloadImagesAfterOnload off;

# 图片预加载
pagespeed EnableFilters inline_preview_images;

# 调整图片大小
pagespeed EnableFilters resize_images;

# 移动端图片自适应重置
pagespeed EnableFilters resize_mobile_images;

# 图片延迟加载
pagespeed EnableFilters lazyload_images;

# 雪碧图片,图标很多的时候很有用
#pagespeed EnableFilters sprite_images;

# 扩展缓存 改善页面资源的可缓存性
pagespeed EnableFilters extend_cache;

# 不将规则应用在 wp-admin目录 和 wplogin.php页面
pagespeed Disallow “*/wp-admin/*”;
pagespeed Disallow “*/wp-login.php*”;
# 风险指数高,不建议开启
#pagespeed EnableFilters local_storage_cache;

# 不能删
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_global_statistics {
allow 127.0.0.1;
deny all;
}

location /ngx_pagespeed_message {
allow 127.0.0.1;
deny all;
}

location ~ ^/pagespeed_global_admin {
allow 127.0.0.1;
deny all;
}

pagespeed StatisticsPath /ngx_pagespeed_statistics;
pagespeed MessagesPath /ngx_pagespeed_message;
pagespeed ConsolePath /pagespeed_console;
pagespeed AdminPath /pagespeed_admin;

# 控制台 可通过 http://domain.com/ngx_pagespeed_admin 来查看控制台
pagespeed Statistics on;
pagespeed StatisticsLogging on;

pagespeed LogDir /var/log/pagespeed;

location /pagespeed_console {
allow 127.0.0.1;
deny all;
}

pagespeed AdminPath /ngx_pagespeed_admin;

location ~ ^/pagespeed_admin {
allow 127.0.0.1;
deny all;
}

# 日志限制
pagespeed StatisticsLoggingIntervalMs 60000;
pagespeed StatisticsLoggingMaxFileSizeKb 1024;

联系我们
简体中文