原创 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尋找方法。大體上分析源代碼都要經歷三遍過程,第一遍是瀏覽,通過閱讀源碼的文檔和註釋,閱讀接口,先弄清楚每個模塊是幹什麼的而不關心它是怎麼做的,畫