使用 CDN 的小伙伴都知道,访问优化一块,压缩除了 Gzip 还有 Brotli,而 Brotli 作为新一代的工具,宝塔面板竟然一直没有集成。今天教大家如何手动为 Nginx 安装 Brotli 压缩模块!
先卸载您现在使用的 Nginx,避免后面步骤出错;
下载 Brotli 并修改 Nginx 安装脚本来进行安装。
连接 SSH 并输入以下命令,首先进入宝塔服务目录:
1 | cd /www/server/ |
其次下载 Brotli 源码包:
1 | git clone https://github.com/google/ngx_brotli.git |
接着进入 Brotli 源码包目录:
1 | cd ngx_brotli/ |
更新 Brotli 源码子模块:
1 | git submodule update --init |
找到文件 /www/server/panel/install/nginx.sh
并将其中的:
1 | ./configure --user=www --group=www --prefix=${Setup_Path} ${ENABLE_LUA} --add-module=${Setup_Path}/src/ngx_cache_purge ${ENABLE_STICKY} --with-openssl=${Setup_Path}/src/openssl --with-pcre=pcre-${pcre_version} ${ENABLE_HTTP2} --with-http_stub_status_module --with-http_ssl_module --with-http_image_filter_module --with-http_gzip_static_module --with-http_gunzip_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-cc-opt="-Wno-error" ${jemallocLD} ${ENABLE_WEBDAV} ${ENABLE_NGX_PAGESPEED} ${ADD_EXTENSION} ${i_make_args} |
改为:
1 | ./configure --user=www --group=www --prefix=${Setup_Path} ${ENABLE_LUA} --add-module=${Setup_Path}/src/ngx_cache_purge ${ENABLE_STICKY} --with-openssl=${Setup_Path}/src/openssl --with-pcre=pcre-${pcre_version} ${ENABLE_HTTP2} --with-http_stub_status_module --with-http_ssl_module --with-http_image_filter_module --with-http_gzip_static_module --with-http_gunzip_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-cc-opt="-Wno-error" ${jemallocLD} ${ENABLE_WEBDAV} ${ENABLE_NGX_PAGESPEED} ${ADD_EXTENSION} ${i_make_args} --add-module=/www/server/ngx_brotli |
1 | bash /www/server/panel/install/nginx.sh install 1.23.2 |
注意:使用上面的命令重新安装 Nginx,其中 1.23.2 为 Nginx 版本号,可以根据实际需求修改!
1 | brotli on; |
注意:将上述代码添加到 Nginx 配置文件中即可。
实测 Brotli 的压缩率为 6 时,与同压缩率的 Gzip 比,体积更小。
部分 CDN 不支持透传 Header 会导致源站不做压缩处理,源站开了压缩 CDN 就不要开了。