原创 nginx源碼分析(6)-模塊化(1)
源碼的src/core目錄下實現了不少精巧的數據結構,最重要的有:內存池ngx_pool_t、緩衝區ngx_buf_t、緩衝區鏈 ngx_chain_t、字符串ngx_str_t、數組ngx_array_t、鏈表ngx_list_t、隊列
原创 nginx源碼分析(18)-基礎設施(1)
從代碼的結構看,nginx可以分爲三個部分:基礎設施、併發模型和應用模塊。前面已經介紹了nginx的模塊化設計,剖析了nginx的併發模型,併發模型主要是核心類模塊和event類模塊實現的。應用模塊主要是指http類模塊和mail類模塊
原创 nginx源碼分析(12)-進程啓動分析(2)
緊接上回。 第四個剖析的是worker子進程的執行函數ngx_worker_process_cycle(src/os/unix/ngx_process_cycle.c)。 static void ngx_worker_process_cy
原创 nginx源碼分析(11)-進程啓動分析(1)
nginx的進程啓動過程是在ngx_master_process_cycle(src/os/unix/ngx_process_cycle.c)中完成的(單進程是通過ngx_single_process_cycle完成,這裏只分析多進程的情
原创 memcached文本協議
以下是很早之前寫的memcached文件協議介紹,重新發布一次。 考慮到memcached1.2與memcached1.1的協議有些不同,分別論述。 [返回的錯誤描述信息 ] 返回的錯誤描述信息分爲三種,帶有不同的關鍵字頭: 普
原创 nginx源碼分析(17)-模塊分析(3)
前面已經分析了nginx的事件處理機制的構建階段,也分析過nginx的進程模型,利用上一篇文章中總結的併發模型設計的知識,先總結介紹一下nginx的併發模型,然後剖析nginx事件處理機制運行階段的處理過程。 nginx 的進程模型採
原创 nginx源碼分析(8)-模塊化(3)
接下來剖析模塊的指令。模塊的指令在源碼中是ngx_command_t結構的變量,ngx_command_t的聲明在src/core/ngx_conf_file.h中: struct ngx_command_s { ngx_str_
原创 又開源了一個項目
在google code上又開源了一個項目(http://code.google.com/p/lightwords/ ): lightwords是一箇中分分詞引擎,用雙數組Trie樹作爲詞典結構,採用最短N路徑算法構造詞圖粗切分,後
原创 開源一個小代碼庫
在google code上開源了一個小項目(http://code.google.com/p/liblightstorage/ ): liblightstorage是一個輕量的文件存儲管理庫,利用buddy算法管理變長數據的文件
原创 nginx源碼分析(14)-運維與配置(2)
事件模塊的指令集主要是配置epoll、kqueue、select、poll等,這些指令控制nginx處理連接的方式,這些指令有: 1、accept_mutex語法形式:accept_mutex [on|off]默認值:on ngi
原创 nginx源碼分析(5)-方法(2)
利用nginx wiki和互聯網收集了不少nginx相關的文檔資料,但是仔細閱讀之後發覺對理解nginx架構有直接幫助的資料不多,一些有幫助的資料也要結合閱讀部分源碼細節才能搞清楚所述其是,可能nginx在非俄國之外的環境下流行不久,應用
原创 nginx源碼分析(9)-模塊化(4)
模塊的上下文是四個結構體定義的:ngx_core_module_t、ngx_event_module_t、ngx_http_module_t、ngx_mail_module_t,分別對應於四類模塊。 typedef struct {
原创 nginx源碼分析(7)-模塊化(2)
分析nginx的模塊化架構的實現方式,就要從ngx_module_t結構體入手。ngx_module_t的聲明在src/core/ngx_conf_file.h中: #define NGX_MODULE_V1 0, 0,
原创 nginx源碼分析(4)-方法(1)
看了幾天的源碼,進度很慢,過於關注代碼實現的細節了,反而很難看清整體結構。於是問諸google尋找方法。大體上分析源代碼都要經歷三遍過程,第一遍是瀏覽,通過閱讀源碼的文檔和註釋,閱讀接口,先弄清楚每個模塊是幹什麼的而不關心它是怎麼做的,畫