引言:最近實習由於專案需要,為了追求穩定性加上烤魚利用nginx本身提供的優秀的基礎設施,使用了nginx提供的一些擴充套件功能來做nginx本身的開發。
nginx提供了很強的可以自己定製擴充套件功能的「外掛程式式」擴充套件,在需要加鉤子的地方構造**函式來完成相應功能(說起來容易做起來難)。
nginx可以提供三種方式的模組擴充套件:
1.handler方式處理http請求
2.filter方式對於輸出的http做過濾,可以加解密或其他功能等
3.load balancer,作為http方向**時候的負載均衡所用
由於專案原因,暫時使用的是handler方式,不過大多數場景下也是使用了handler方式
nginx處理http請求的時候,nginx模組通過讀取配置檔案的引數找到相應的鉤子函式
比如我們的模組是乙個取得日誌檔案的nginx模組,以http post方式
按照nginx模組的命名規則就是 ngx_http_get_log_module
比如在nginx模組的配置檔案 nginx/conf/nginx.conf server 段中增加如下選項
location /get_log {
get_log on;
在模組編寫完成後在 ./configure 的時候加上--add-module=/yourdir/ngx_http_get_log_module.c 選項
在模組中與 ngx_http_get_log_module.c 中編寫配置檔案config
在編譯的時候 ./configure --add-module=/yourdir/ngx_http_get_log_module
make &&make install
然後再用http方式測試,client端可以用瀏覽器或者是其他的第三方庫來做
我利用的是python的 urllib2 做http post的
開發記錄 Nginx模組開發 二
引言 nginx模組提供了upstream 上游伺服器 的非同步 處理模組開發,以memcached 模組為例 commands結構的初始化為相應的命令新增 函式,用來處理 memcached pass 這個命令 看看 ngx http memcached pass 的實現 此函式會對 conf 做...
Nginx模組開發(1) 初探模組開發流程
一 準備工作 1 安裝pcre庫 cd usr local wget tar zxvf pcre 8.38.tar.gz cd pcre 8.38 configure make make install 2.安裝zlib cd usr local wget tar zxvf zlib 1.2.8.t...
nginx的模組開發
nginx剛剛在國內開始流行的時候,我就把它引入公司技術體系,用來替代apache主要做動靜分離。nginx的併發處理能力和穩定性,以及優秀的軟體架構深深得吸引了我,讓我跨入了高效能伺服器開發的大門。正巧當時要基於flash技術開發一套 系統,而且要支援 環境,而當時並沒有什麼好的辦法讓flash通...