需要的預備知識不多,有如下幾點:
有過一些 c 語言的程式設計經歷;
知道 nginx 是幹嘛的,並有過編寫或改寫 nginx 的配置檔案的經歷。
ok,就這兩點就夠了 :)
好了,那就開始吧~
我們的目標,就是你在瀏覽器裡輸入http://localhost/hello_world
時,顯示:
hello world
當然,為了能夠更加自定義一些,我們嘗試在hello world
後面再顯示乙個字串,比如:
hello world, poechant
那麼我們的配置檔案看起來是什麼樣的呢?
}}是的,很簡單吧,唯一特別的部分,就是:
location /hello_world
首先要明確,我們的檔案和目錄結構:
|_____________config其中ngx_http_hello_world_module.c
是模組的 c 原始碼檔案,config
是模組的配置檔案。
定義乙個結構體:
typedef struct ngx_http_hello_world_loc_conf_t;
定義三個變數:
ngx_module_t ngx_http_hello_world_module = ;定義三個函式:
static char* ngx_http_hello_world_merge_loc_conf(ngx_conf_t* cf, void* parent, void* child)完整的程式如下:
ngx_addon_srcs="$ngx_addon_srcs $ngx_addon_dir/ngx_http_hello_world_module.c"最開始已經展示過了,就是它。
如果沒有任何錯誤提示的話,那麼恭喜你,你的模組編譯通過了!$ ./configure --add-module=/usr/local/nginx/ngx_http_hello_world_module (這個根據自己目錄設定就可以了)
make
然後執行 nginx。如果沒有任何錯誤提示的話,再次恭喜你,你的模組已經被正常載入執行了!
http://localhost/hello_world
你應該會看到:
hello_world, poechant
這個簡單模組的詳細解釋,在該系列博文的第
二、三、四篇中。
一般來說,剛入門做某件事情的時候,我們不大想聽廢話,希望趕緊開始上手幹活,否則會覺得很空洞。這也是為什麼我一開始就上了乙個例子,並給出**。但是還是要了解一些「空話」,才有助於理解。
nginx 處理請求的過程,是在請求收到後定位到配置檔案中描述的相應 location,然後由 handler 生成 response,再由 filter 進行處理。所以模組開發,可以是 handler 模組開發,也可以是 filter 模組開發(當然還有其他型別的模組)。
python模組化程式設計與簡單模組實現
首先分清楚模組和包的區別 模組化程式設計設計概念 模組的api 模組化程式設計的原則是先設計api,然後實現api,最後在客戶端中匯入和使用這些函式和類。可以通過help函式檢視模組的api 模組設計的一般原則 先設計api,再實現模組 控制模組規模,只提供需要的函式,降低複雜性 在模組中編寫測試 ...
RequireJs打包簡單模組打包
本文講解的是requirejs對檔案合併與壓縮的實現方法。requirejs提供了乙個打包與壓縮工具r.js,r.js的壓縮工具使用uglifyjs進行壓縮的。requirejs對互相依賴模組進行合併與壓縮,可以對js,css壓縮,甚至可以對整個專案進行打包。r.js是基於nodejs的,所以本機電...
實現選單模組功能(四)
建立包含上述學生資訊的檔案 student.data 並輸出學生資訊 將學生資訊檔案 student.data 資料讀到乙個陣列s中,統計學生個數,將陣列s按學號從小到大排序後輸出到螢幕和檔案 s no.data 中。將學生資訊從陣列s中拷貝到陣列s name中,將s name按姓名排序後輸出到螢幕...