原创 [nginx源碼分析]配置解析(location作用域)

Location命令所在模塊爲ngx_http_core_module { ngx_string("location"), NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_BLOC

原创 [nginx源碼分析]配置解析(http作用域)

分析完events後,開始分析http、sever、location模塊。 http上下文主要是創建三個用於保存每一個模塊設置的變量結構,每個模塊都可以保存變量到http三個數組指針中(main、server、location),每個模塊

原创 [libevent源碼分析] event_init

libevent採用的是經典的reactor網絡框架,集成了信號、定時、網絡事件於一體 首先對event_init進行源碼剖析 event_init 主要創建event_base對象,struct eve

原创 [libevent源碼分析] event_add

event_add 把event往當前event中的ev_base追加,如果需要定時,那麼tv不能爲空 int event_add(struct event *ev, const struct timeval *tv) { struc

原创 [libevent源碼分析] event_set

libevent使用event來封裝網絡事件回調,參數、fd。。。等一些信息,函數很簡單 void event_set(struct event *ev, int fd, short events, void (*callback

原创 [nginx源碼解析]配置解析(event作用域)

處理events 其中符合NGX_EVENT_MODULE有兩個模塊分別是ngx_event_core_module、ngx_epoll_module 核心代碼 ngx_modules[i]->ctx_index = ngx_ev

原创 [nginx源碼解析]配置解析(main作用域)

下面我們就以一個簡單配置(nginx默認配置文件)來進行分析整個配置解析過程,同時會附圖 配置文件如下(nginx默認生成配置文件) worker_processes 1; daemon off; events {

原创 [nginx源碼分析]配置解析1

整個配置解析主要是函數ngx_init_cycle(&init_cycle)進行處理。 ngx_init_cycle(&init_cycle)          ngx_time_update()//時間更新,也是在main函數裏面講過

原创 [nginx源碼分析]主函數解析

ngx_strerror_init          函數主要是先把錯誤信息保存在ngx_sys_errlist數組裏面,做一個errno->errmsg的映射數組,當系統發生錯誤時候,直接就可以通過errno找到errmsg,減少api