前言
宝塔面板曾经是国内适用范围最广的面板,然而似乎每个公司做大后都会想尽办法进一步收割用户。无论是绑定个人账号或者是广告植入,都难以令人继续忍受,而目前最受欢迎的替代者应该当属1panel了。
尽管采用了全容器化的部署,带来了一些上手成本,不过相对于AMH、AppNode还是更容易令人接受。
不过令人遗憾的是,官方的Docker镜像中并没有包含所依赖的库,因此没有办法直接启用,而是需要引入对应的模块文件。
快速引入
博主已经编译好了所需要的两个模块文件,因此可以直接通过下载的方式快速进行引入。
首先打开1Panel的后台页面,记录下容器的名称。
比如此处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;
压缩等级和类型可以对应修改,如无特殊需要直接复制即可。
然后进入应用商店已安装应用中,执行重启即可顺利开启。
编译安装
首先下载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提交这方便的建议,希望能够尽快将两个文件直接打包进后续的镜像中。
陈砷径:文章真不错https://www.minshengtouzi.com/a/21991.html