前言

因为我一直用的是Tengine版本的Nginx,今天去Tengine官网http://tengine.taobao.org/ 看了一下 发现了很多功能 ,比如
ngx_http_concat_module模块
该模块类似于apache中的mod_concat模块,用于合并多个文件在一个响应报文中。
trim 模块
该模块用于删除 html , 内嵌 javascript 和 css 中的注释以及重复的空白符。
我觉得这两个都非常有用 于是直接修改nginx配置想使用这个功能,却发现宝塔默认没有编译这个模块,其实这样不怪宝塔,经过查阅资料,是tengine官方在2.3版本取消了这个模块ngx_http_trim_filter_module,如果有需要可以自行添加这个模块。
好吧好吧,还是要开始折腾了,下面讲下我是在Tengine-Nginx已编译情况下增加模块的。

开始折腾

  1. 我们可以使用 nginx -V 查看模块列表。
nginx -V

宝塔在Tengine-Nginx已编译情况下增加模块
把上面信息复制下来,后面有用
我复制的是

./configure --user=www --group=www --prefix=/www/server/nginx --add-module=/www/server/nginx/src/ngx_devel_kit --add-module=/www/server/nginx/src/lua_nginx_module --add-module=/www/server/nginx/src/ngx_cache_purge --add-module=/www/server/nginx/src/nginx-sticky-module --with-openssl=/www/server/nginx/src/openssl --with-pcre=pcre-8.43 --with-http_v2_module --with-stream --with-stream_ssl_module --with-stream_ssl_preread_module --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 --with-ld-opt=-ljemalloc --with-http_dav_module --add-module=/www/server/nginx/src/nginx-dav-ext-module

好吧,显然没有我们需要的那两个模块

  1. 查看nginx目录里面有没有模块文件
    宝塔是在
/www/server/nginx/src/modules

我们进去这个文件夹 直接ctrl加f搜索 ,注意不要搜全名,因为名字太长隐藏了一部分 我们搜中间的:concat_
宝塔在Tengine-Nginx已编译情况下增加模块
搜索发现这两个模块里面都有,那我们就不需要再去下载模块文件了!

  1. 修改configure文件
    我们ssh进入nginx的src文件夹
cd /www/server/nginx/src

进来以后执行修改,这个时候就用到上面让你保存的信息了,我们在后面添加我们要增加的模块
在刚刚复制的后面添加:

--add-module=/www/server/nginx/src/modules/ngx_http_trim_filter_module --add-module=/www/server/nginx/src/modules/ngx_http_concat_module

合起来就是

./configure --user=www --group=www --prefix=/www/server/nginx --add-module=/www/server/nginx/src/ngx_devel_kit --add-module=/www/server/nginx/src/lua_nginx_module --add-module=/www/server/nginx/src/ngx_cache_purge --add-module=/www/server/nginx/src/nginx-sticky-module --with-openssl=/www/server/nginx/src/openssl --with-pcre=pcre-8.43 --with-http_v2_module --with-stream --with-stream_ssl_module --with-stream_ssl_preread_module --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 --with-ld-opt=-ljemalloc --with-http_dav_module --add-module=/www/server/nginx/src/nginx-dav-ext-module --add-module=/www/server/nginx/src/modules/ngx_http_trim_filter_module --add-module=/www/server/nginx/src/modules/ngx_http_concat_module
  1. 编译
make

注:(不要make install,否则就是覆盖安装)且是在刚刚进入的src目录下执行

  1. 替换nginx二进制文件
rm -f /www/server/nginx/sbin/nginx.old
mv /www/server/nginx/sbin/nginx /www/server/nginx/sbin/nginx.old
cp objs/nginx /www/server/nginx/sbin/nginx
make upgrade

upgrade完毕后,使用 nginx -V 命令 再次查看版本信息
宝塔在Tengine-Nginx已编译情况下增加模块
这个时候我们可以看到ngx_http_concat_modulengx_http_trim_filter_module模块已经加载进去了,ok,大功告成!如果你不是宝塔安装的nginx,也可以以此类推解决,关键是要找到nginx的configure,修改里面的设置项,再make就行了

使用模块

顺便讲一下如何使用模块吧,已trim模块为例
想加全部网站就修改nginx的配置,想单个网站就修改单个网站的nginx配置,我想修改单个网站,那么开始!
没用模块之前的效果
宝塔在Tengine-Nginx已编译情况下增加模块

  1. 打开网站配置的选项
    宝塔在Tengine-Nginx已编译情况下增加模块
  2. 添加以下配置代码
#开启trim-教书先生博客
location / {
     trim on;
     trim_js on;
     trim_css on;
}

注意看我截屏的添加位置
保存以后我们刷新网站看一下效果!
宝塔在Tengine-Nginx已编译情况下增加模块
此教程到此结束,有不懂的可以评论,我看到会协助解决!
2020年11月14日13:44:02补充

未安装Nginx的情况下增加模块

未安装Nginx的情况下增加模块
未安装Nginx的情况下增加模块
以trim模块为例

--add-module=/www/server/nginx/src/modules/ngx_http_trim_filter_module
最后修改:2020 年 11 月 14 日 02 : 41 PM
如果觉得我的文章对你有用,请随意赞赏