Nginx核心知識100講學習筆記(陶輝)Nginx架構基礎(四)


一、紅黑樹

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

驗證效果


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM