一、紅黑樹
1、紅黑樹
2、紅黑樹復雜度
3、使用紅黑樹的模塊
1、本地內存做的紅黑樹
ngx_conf_module ngx_event_timer_rbtree #管理定時器的紅黑樹
2、管理定時器的紅黑樹
Ngx_http_file_cache Ngx_http_geo_module Ngx_http_limit_conn_module Ngx_http_limit_req_module Ngx_http_lua_shdict:ngx.shared.DICT #LRU鏈表性質 resolver #ngx_resolver_t Ngx_stream_geo_module Ngx_stream_limit_conn_module
二、使用動態模塊來提升運維效率
1、動態庫和靜態庫有什么區別?
靜態庫直接把所有的源代碼編譯到最終的二進制中
動態庫在nginx可執行文件里保留了調用它的地址、在需要用到動態庫的功能時由nginx的可執行文件去調用這個動態庫
2、動態庫的應用場景
這里的好處是:當我們僅僅需要修改某一個模塊或者升級某個模塊功能時、這時候我可以僅僅編譯這個動態庫就可以升級的時候用新的動態文件替換掉舊的動態文件即可
1、那些模塊是支持動態模塊的
[root@ceph-client openresty-1.13.6.2]# ./configure --help|grep "=dynamic" --with-http_xslt_module=dynamic enable dynamic ngx_http_xslt_module --with-http_image_filter_module=dynamic --with-http_geoip_module=dynamic enable dynamic ngx_http_geoip_module --with-http_perl_module=dynamic enable dynamic ngx_http_perl_module --with-mail=dynamic enable dynamic POP3/IMAP4/SMTP proxy module --with-stream=dynamic enable dynamic TCP/UDP proxy module --with-stream_geoip_module=dynamic enable dynamic ngx_stream_geoip_module
3、靜態模塊工作原理
4、動態模塊運行流程

三、動態模塊安裝
1、安裝流程圖
2、安裝過程
1、Configure加入動態模塊
./configure --prefix=/home/geek/nginx --with-http_image_filter_module=dynamic
2、編譯進binary
make && make install
3、啟動時初始化模塊數組
4、讀取load_module配置
load_module modules/ngx_http_image_filter_module.so;
5、打開動態庫並加入模塊數組
6、基於模塊數組開始初始化
四、動態模塊使用前后對比
1、未使用動態模塊
nginx配置
location / { root /test; }
nginx -s reload [root@nginx ~]# ll /test/ total 288 -rw-r--r-- 1 root root 294408 Aug 21 17:18 1.png
驗證
2、使用動態模塊
nginx配置
load_module modules/ngx_http_image_filter_module.so image_filter resize 150 100;
nginx -s reload
驗證效果