1panel中的OpenResty启用Brotli压缩

cafd8bb38e558cd092fa404e5db541fc

前言

宝塔面板曾经是国内适用范围最广的面板,然而似乎每个公司做大后都会想尽办法进一步收割用户。无论是绑定个人账号或者是广告植入,都难以令人继续忍受,而目前最受欢迎的替代者应该当属1panel了。
尽管采用了全容器化的部署,带来了一些上手成本,不过相对于AMH、AppNode还是更容易令人接受。
不过令人遗憾的是,官方的Docker镜像中并没有包含所依赖的库,因此没有办法直接启用,而是需要引入对应的模块文件。

快速引入

博主已经编译好了所需要的两个模块文件,因此可以直接通过下载的方式快速进行引入。
首先打开1Panel的后台页面,记录下容器的名称。

10de6d985cea5c239dce6834ae27d5ff

比如此处OpenResty的容器名称为1Panel-openresty-J1l8
连接到服务器,下载模块文件并复制到Docker容器内。

export CONTAINER_NAME=1Panel-openresty-J1l8
wget https://f004.backblazeb2.com/file/letertw/br.zip
unzip br.zip
docker cp ngx_http_brotli_filter_module.so $CONTAINER_NAME:/usr/local/openresty/nginx/modules/ngx_http_brotli_filter_module.so
docker cp ngx_http_brotli_static_module.so $CONTAINER_NAME:/usr/local/openresty/nginx/modules/ngx_http_brotli_static_module.so

在1Panel的面板中进入配置文件目录/opt/1panel/apps/openresty/openresty/conf,编辑nginx.conf文件
user root; 下方加入如下代码

load_module modules/ngx_http_brotli_filter_module.so;
load_module modules/ngx_http_brotli_static_module.so;

同时在gzip配置下方加入brotli的配置代码

brotli on;
    brotli_comp_level 9;
    brotli_static on;
    brotli_types application/atom+xml application/javascript application/json application/vnd.api+json application/rss+xml
             application/vnd.ms-fontobject application/x-font-opentype application/x-font-truetype
             application/x-font-ttf application/x-javascript application/xhtml+xml application/xml
             font/eot font/opentype font/otf font/truetype image/svg+xml image/vnd.microsoft.icon
             image/x-icon image/x-win-bitmap text/css text/javascript text/plain text/xml;

484cb81e5551d7782597b133954bb173

压缩等级和类型可以对应修改,如无特殊需要直接复制即可。
然后进入应用商店已安装应用中,执行重启即可顺利开启。

编译安装

首先下载ngx_brotli源码

git clone --recurse-submodules -j8 https://github.com/google/ngx_brotli

然后下载对应版本的openresty源码并解压,同时进入到其中的nginx目录中

wget https://openresty.org/download/openresty-1.21.4.3.tar.gz
tar -xzvf openresty-1.21.4.3.tar.gz
cd openresty-1.21.4.3/bundle/nginx-1.21.4

安装开发环境,此处以AlmaLinux/RockyLinux为演示

dnf group install -y "Development Tools

执行编译,此处以root文件夹为例

./configure --with-compat --add-dynamic-module=/path/to/ngx_brotli
make modules

等待编译完成后,对应编译好的模块文件将生成在objs文件夹内,下面的操作参考上方的快速引入部分即可

结语

这样的模块引用方式意味着不用去重新生成对应的Docker镜像,但是每次更新完应用之后都需要手动去进行拷贝动作,还是比较繁琐。

声明

本文转载自1panel中的OpenResty启用Brotli压缩 - 神楽坂 玉兔 (54yt.net)

版权声明

   站内部分内容来自互联网,该文仅限用于学习和研究目的。本站仅提供网络资源分享服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请 联系我们 一经核实,立即删除。访问和下载本站内容,说明您已同意上述条款。在为用户提供最好的产品同时,保证优秀的服务质量。


本站仅提供信息存储空间,不拥有所有权,不承担相关法律责任。
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容