1.整型的封裝
typedef intptr_t ngx_int_t;
typedef uintptr_t ngx_uint_t;
2. 字串的封裝
typedef struct ngx_str_t;
ngx_str_t只有兩個成員,data指向字串起始位址,len表示字串的有效長度。c語言中,字串一般都是以'\0'結尾,但是這裡data指向的並不一定會以'\0'結尾,所以通過len,避免越界。
3.ngx_list_t資料結構
typedef struct ngx_list_part_s ngx_list_part_t;
struct ngx_list_part_s
typedef struct ngx_list_t;
ngx_list_t 是nginx封裝的鍊錶容器。ngx_list_part_t是乙個陣列,擁有連續的記憶體,而ngx_list_t可以看成是元素為陣列的鍊錶。
ngx_list_t成員的意義:
1.last:指向鍊錶的最後乙個陣列元素;
2.part:鍊錶的首個陣列元素;
3.size:限制每乙個陣列元素的大小;
4.nalloc:表示每個ngx_list_part_t陣列的元素個數;
5.pool鍊錶中管理記憶體分配的記憶體池物件
ngx_list_part_t成員,由上面的介紹,可以看出來,每個ngx_list_part_t的容量由size和nalloc來確定
1.elts:指向陣列的起始位址;
2.nelts:表示陣列中已經使用了多少個元素;
4.ngx_table_elt_t 資料結構
typedef struct ngx_table_elt_t;
ngx_table_elt_t 有點類似於乙個key/value的儲存結構,key、value成員裡面都存放的是字串,lowcase_key指向的是全小寫的key字串。ngx_table_elt_t一般用來存放http頭部,http頭部經常是大小寫不敏感的,所以有了全小寫的lowcase_key。因為ngx_table_elt_t可以是某個雜湊表資料結構(ngx_hash_t型別)中的成員,所以hash成員可以在ngx_hash_t更快的找到相同key的ngx_table_elt_t資料。
5.ngx_buf_t 資料結構
緩衝區ngx_buf_t是nginx處理大資料的關鍵資料結構,既應用於記憶體資料也應用於磁碟資料。
typedef struct ngx_buf_s ngx_buf_t;
typedef struct void * ngx_buf_tag_t;
struct ngx_buf_s;
6.ngx_chain_t資料結構
typedef struct ngx_chain_s ngx_chain_t;
struct ngx_chain_s ;
buf指向當前的ngx_buf_t緩衝區,next指向下乙個ngx_chain_t。
關於http模組先介紹到這,主要是一些資料結構的介紹,後面會再對nginx http模組處理進行介紹。
Nginx 常用模組介紹
nginx 核心模組介紹 標準的http功能模組集合 常用模組彙總 ngx http core module 包括一些核心的http引數配置,對應nginx的配置為http區塊部分 ngx http gzip module 壓縮模組,對nginx返回的資料壓縮,屬於效能優化模組 ngx http p...
nginx學習(五) http模組
一 http核心模組 1 alias 語法 alias file path directory path 預設值 no 作用域 location 該指令設定指定location使用的路徑.注意它跟 root 相似,但是不改變檔案的根路徑,僅僅是使用檔案系統路徑 比如 location i 請求 i ...
Nginx 編譯進去自己的HTTP模組
安裝nginx yum nginx install yum安裝的是編譯好的二進位制檔案和配置檔案,沒有原始檔 nginx啟動 usr sbin nginx c etc nginx nginx.conf nginx s reload sudo service nginx restart nginx關閉...