Nginx集成http_trim_filter模块

By | 2018年5月30日

在淘宝的Tengine中有个trim模块,可以去删除 html,内嵌 javascript 和 css 中的注释以及重复的空白符。(了解详细:http://tengine.taobao.org/document_cn/http_trim_filter_cn.html)

在编译安装tengine时会自动安装这个模块,那如果使用原版的Nginx该如何嵌入这个模块呢。

很简单,在Tengine的源代码目录里找到trim模块的c文件,另外再编辑一个config文件即可,把这个模块作为nginx的一个model,在编译时加入即可。

config文件内容:

ngx_addon_name=ngx_http_trim_filter_module
HTTP_AUX_FILTER_MODULES="$HTTP_AUX_FILTER_MODULES ngx_http_trim_filter_module"
NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_trim_filter_module.c"

文件准备好后,如下:

下载地址:https://dfiles.cn/s/h1571v9r

重新编译下nginx,在configure中使用add-module:

--prefix=/opt/programs/nginx
--with-openssl=/opt/nginx_source/openssl_1_1_1-pre2
--with-openssl-opt='enable-tls1_3 enable-ec_nistp_64_gcc_128 enable-weak-ssl-ciphers'
--with-http_v2_module
--with-http_ssl_module
--add-module=/opt/nginx_source/nginx-http-concat-1.2.2
--add-module=/opt/nginx_source/nginx_http_trim_filter_cn

重新编译完成后,在nginx配置文件中使用trim开关:

trim on;
trim_js on;
trim_css on;

完成。

注意:该模块仅能去掉html中内嵌的css、js的注释,不能去除独立css,js文件中的注释。