Zxilly
Try to be 1%
Zxilly's Blog
为 Nginx 添加 Brotli 和 PageSpeed 支持

本文所有操作均基于宝塔面板环境下完成,但参数对于自编译的 Nginx 也可生效

宝塔默认的 Nginx 编译参数已经可以满足大部分人的需求,但对我而言,它还缺少 BrotliPageSpeed 这两个常用的模块。本文将介绍如何编译支持这两个模块的 Nginx。

1.Brotli 的编译

cd /root
git clone https://github.com/bagder/libbrotli
cd libbrotli
./autogen.sh
./configure
make && make install
cd /root
git clone https://github.com/google/ngx_brotli
cd ngx_brotli
git submodule update --init

将这段代码保存为 shell 文件并执行,即可编译安装所需的 Brotli 模块

2.PageSpeed 的编译

#[check the release notes for the latest version]
NPS_VERSION=1.13.35.2-stable
cd
wget https://github.com/apache/incubator-pagespeed-ngx/archive/v${NPS_VERSION}.zip
unzip v${NPS_VERSION}.zip
nps_dir=$(find . -name "*pagespeed-ngx-${NPS_VERSION}" -type d)
cd "$nps_dir"
NPS_RELEASE_NUMBER=${NPS_VERSION/beta/}
NPS_RELEASE_NUMBER=${NPS_VERSION/stable/}
psol_url=https://dl.google.com/dl/page-speed/psol/${NPS_RELEASE_NUMBER}.tar.gz
[ -e scripts/format_binary_url.sh ] && psol_url=$(scripts/format_binary_url.sh PSOL_BINARY_URL)
wget ${psol_url}
tar -xzvf $(basename ${psol_url})  # extracts to psol/

其中的变量 NPS_VERSION 可以在 PageSpeed 的发布日志中找到,一般建议使用 stable 版本。

3.Nginx 的编译

在你之前的 Nginx 编译参数后追加

--add-module=/www/server/ngx_brotli --add-module=/root/incubator-pagespeed-ngx-1.13.35.2-stable

在宝塔中,你可以修改/www/server/panel/install/nginx.sh 文件来对 Nginx 的编译参数进行修改,就我而且,其位于 75 行。随后使用 sh /www/server/panel/install/nginx.sh install $(欲安装的 Nginx 版本号)来安装 Nginx。如果你已经安装过 Nginx,则应当将 install 替换为 update。 如果是自行编译 Nginx,你应当按照你之前的编译方式重新编译。注意,编译前应当关闭旧的 Nginx 进程。 随后,你可以使用 nginx -V 来检验新的参数是否已被应用。

4. 总结及参考资料

简而言之,就是使用--add-module 来添加模块 对宝塔而言,大部分运行环境都可以在/www/server/panel/install/下找到安装脚本,对这些脚本进行修改可以简单地改变编译参数,在宝塔官方支持修改编译参数之前,可做权宜之计。 在本文的撰写过程中,参考有 [1] 宝塔面板-换一种宝塔方式编译 brotli 的教程[2]Build ngx_pagespeed From Source[3]PageSpeed Release Notes

没有标签
首页      服务器      为 Nginx 添加 Brotli 和 PageSpeed 支持

learningman

文章作者

发表评论

textsms
account_circle
email

Zxilly's Blog

为 Nginx 添加 Brotli 和 PageSpeed 支持
本文所有操作均基于宝塔面板环境下完成,但参数对于自编译的Nginx也可生效 宝塔默认的Nginx编译参数已经可以满足大部分人的需求,但对我而言,它还缺少Brotli和PageSpeed这两个常用的模…
扫描二维码继续阅读
2019-06-10