### handler模塊的編譯和使用[](http://tengine.taobao.org/book/chapter_03.html#id11 "永久鏈接至標題")
模塊的功能開發完了之后,模塊的使用還需要編譯才能夠執行,下面我們來看下模塊的編譯和使用。
[](http:// "點擊提交Issue,反饋你的意見...")
### config文件的編寫[](http://tengine.taobao.org/book/chapter_03.html#config "永久鏈接至標題")
對于開發一個模塊,我們是需要把這個模塊的C代碼組織到一個目錄里,同時需要編寫一個config文件。這個config文件的內容就是告訴nginx的編譯腳本,該如何進行編譯。我們來看一下hello handler module的config文件的內容,然后再做解釋。
[](http:// "點擊提交Issue,反饋你的意見...")
ngx_addon_name=ngx_http_hello_moduleHTTP_MODULES="$HTTP_MODULES ngx_http_hello_module"NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_hello_module.c"
其實文件很簡單,幾乎不需要做什么解釋。大家一看都懂了。唯一需要說明的是,如果這個模塊的實現有多個源文件,那么都在NGX_ADDON_SRCS這個變量里,依次寫進去就可以。
[](http:// "點擊提交Issue,反饋你的意見...")
### 編譯[](http://tengine.taobao.org/book/chapter_03.html#id12 "永久鏈接至標題")
對于模塊的編譯,nginx并不像apache一樣,提供了單獨的編譯工具,可以在沒有apache源代碼的情況下來單獨編譯一個模塊的代碼。nginx必須去到nginx的源代碼目錄里,通過configure指令的參數,來進行編譯。下面看一下hello module的configure指令:
./configure –prefix=/usr/local/nginx-1.3.1 –add-module=/home/jizhao/open_source/book_module
我寫的這個示例模塊的代碼和config文件都放在/home/jizhao/open_source/book_module這個目錄下。所以一切都很明了,也沒什么好說的了。
[](http:// "點擊提交Issue,反饋你的意見...")
### 使用[](http://tengine.taobao.org/book/chapter_03.html#id13 "永久鏈接至標題")
使用一個模塊需要根據這個模塊定義的配置指令來做。比如我們這個簡單的hello handler module的使用就很簡單。在我的測試服務器的配置文件里,就是在http里面的默認的server里面加入如下的配置:
[](http:// "點擊提交Issue,反饋你的意見...")
location /test {
hello_string jizhao;
hello_counter on;
}
當我們訪問這個地址的時候, lynx?[http://127.0.0.1](http://127.0.0.1/)/test的時候,就可以看到返回的結果。
jizhao Visited Times:1
當然你訪問多次,這個次數是會增加的。
- 上篇:nginx模塊開發篇
- nginx平臺初探
- 初探nginx架構
- nginx基礎概念
- connection
- request
- keepalive
- pipe
- lingering_close
- 基本數據結構
- ngx_str_t
- ngx_pool_t
- ngx_array_t
- ngx_hash_t
- ngx_hash_wildcard_t
- ngx_hash_combined_t
- ngx_hash_keys_arrays_t
- ngx_chain_t
- ngx_buf_t
- ngx_list_t
- ngx_queue_t
- nginx的配置系統
- 指令參數
- 指令上下文
- nginx的模塊化體系結構
- 模塊的分類
- nginx的請求處理
- handler模塊
- handler模塊簡介
- 模塊的基本結構
- 模塊配置結構
- 模塊配置指令
- 模塊上下文結構
- 模塊的定義
- handler模塊的基本結構
- handler模塊的掛載
- handler的編寫步驟
- 示例: hello handler 模塊
- handler模塊的編譯和使用
- 更多handler模塊示例分析
- http access module
- http static module
- http log module
- 過濾模塊
- 過濾模塊簡介
- 過濾模塊的分析
- upstream模塊
- upstream模塊
- upstream模塊接口
- memcached模塊分析
- 本節回顧
- 負載均衡模塊
- 配置
- 指令
- 鉤子
- 初始化配置
- 初始化請求
- peer.get和peer.free回調函數
- 本節回顧
- 其他模塊
- core模塊
- event模塊
- 模塊開發高級篇
- 變量
- 下篇:nginx原理解析篇
- nginx架構詳解
- nginx的源碼目錄結構
- nginx的configure原理
- 模塊編譯順序
- nginx基礎設施
- 內存池
- nginx的啟動階段
- 概述
- 共有流程
- 配置解析
- nginx的請求處理階段
- 接收請求流程
- http請求格式簡介
- 請求頭讀取
- 解析請求行
- 解析請求頭
- 請求體讀取
- 讀取請求體
- 丟棄請求體
- 多階段處理請求
- 多階段執行鏈
- POST_READ階段
- SERVER_REWRITE階段
- FIND_CONFIG階段
- REWRITE階段
- POST_REWRITE階段
- PREACCESS階段
- ACCESS階段
- POST_ACCESS階段
- TRY_FILES階段
- CONTENT階段
- LOG階段
- Nginx filter
- header filter分析
- body filter分析
- ngx_http_copy_filter_module分析
- ngx_http_write_filter_module分析
- subrequest原理解析
- https請求處理解析
- 附錄A 編碼風格
- 附錄B 常用API
- 附錄C 模塊編譯,調試與測試