在nginx编译了太多模块,场景及其复杂的情况下,动态模块可减少我们出错的概率
在编译的时候指定了某一些模块使用动态模块的方式去编译,在生成nginx二进制可执行文件外,还会生成动态库,也就是我们指定模块的动态库
动态库与静态库的区别?
静态库会直接把源代码编译进最终的二进制可执行文件中,而动态库在二进制可执行文件里,只保留了调用它的位置,或者说是地址,在我们需要用到动态库里模块时,由nginx去调用动态库,再去完成所需的功能,当动态库里的模块需要升级时,则只需重新编译动态库,而不用去替换二进制可执行文件
执行流程:
查看哪些模块支持动态模块,后面加了dynamic
--with-http_image_filter_module=dynamic
实例:image_filter(实时的把图片压缩成更小的图片)
<1>编译时加入该模块
./configure --with-http_image_filter_module=dynamic
注意:
需要先安装gd库apt-get install libgd-dev
可以看到在Modules目录中有了动态库
动态库是以so结尾,静态库以.a结尾
<2>在模板目录下放一个图片
<3>配置
对访问图片的目录,给他加上image_filter,将其变成15 10 像素