图形化参考:4.3.1 解析HTTP配置的流程图4-1*///从ngx_http_module模块里面的http命令解析走到这里/*cf空间始终在一个地方,就是ngx_init_cycle中的conf,使用中只是简单的修改conf中的ctx指向已经cmd_type类型,然后在解析当前{}后,重新恢复解析当前{}前的配置 参考"http" "server" "location"ngx_http_block n...
在处理ngx_http_init_connection过程中,注册了ngx_http_wait_request_handler,当客户端开始发送请求时候,会触发ngx_http_wait_request_handler 15.3 回顾ngx_http_wait_request_handler中的epoll注册 (1)第一次注册:ngx_http_request_handler ngx_http_process_request中有方法的声明,注意这里用到的是c->write->han...
51CTO学堂为您提供53.ngx_init_http_connection 函数讲解-51CTO学堂Linux网络编程开源项目之Nginx源码剖析等各种IT领域实战培训课程视频及精品班培训课程
ngx_event_accept 获得 已连接套接字,并封装到 ngx_connection_t 对象中,初始化 ngx_connection_t 对象(内存池),调用 ngx_listening_t->handler. 2.2 将通信套接字加入事件监听 handler 为 ngx_http_init_connection 206void207ngx_http_init_connection(ngx_connection_t*c)208{210ngx_event_t*rev;215ngx_...
在ngx_http_add_listening函数调用ngx_create_listening,相应一个地址信息产生一个ngx_listening_t的结构体,最最重要的是这个监听套接字上的回调是ngx_http_init_connection函数,这个一个监听套接字上接收到HTTP请求成功后(accept成功后 创建新的连接后,调用accept连接时在函数ngx_event_accept函数中,这个函数最为一...
就是ngx_http_init_connection 在之后http模块中在详细介绍 */ ls->handler(c); if (ngx_event_flags & NGX_USE_KQUEUE_EVENT) { ev->available--; } } while (ev->available); } accpt事件的handler方法也就是如此了。之后就是每个连接的读写事件handler方法,这一部分会直接将我们引入http模块,我们还不...
ready标志位则是为了在ngx_http_init_connection方法中判断是否直接读取数据信息。// 设置读取的回调函数 ...
创建发往upstream的request(u->create_request),调用是下图中的ngx_http_proxy_create_request 在ngx_http_proxy_create_request中,先复习下 headers = &plcf->headers中headers的内容,在ngx_http_script_add_var_code中预先处理了这些内容。 14.2 ngx_http_upstream_init 先复习headers相关内容 ...
static ngx_int_t ngx_http_find_virtual_server(ngx_connection_t *c, ngx_http_virtual_names_t *virtual_names, ngx_str_t *host, ngx_http_request_t *r, ngx_http_core_srv_conf_t **cscfp);static void ngx_http_request_handler(ngx_event_t *ev); ...
---ngx_http_limit_req_zone解析limit_req_zone配置部分,注册了shm_zone->init = ngx_http_limit_req_init_zone; 5.ngx_http_geo_module模块的set钩子---ngx_http_geo_block解析 geo配置部分,注册了cf->handler = ngx_http_geo,然后调用 ngx_conf_...