Nginx
魔剑c
这个作者很懒,什么都没留下…
展开
-
nginx源码分析--状态机执行
/** * 11个阶段处理HTTP请求 */ void ngx_http_core_run_phases(ngx_http_request_t *r) { ngx_int_t rc; ngx_http_phase_handler_t *ph; ngx_http_core_main_conf_t *cmcf; cmcf = ngx_http_get_module_main_conf(r, ngx_http_core_module)原创 2020-09-11 17:56:47 · 194 阅读 · 0 评论 -
nginx源码分析--状态机模型
nginx在处理客户端发来的http数据,主要是通过11个阶段的处理,形成了状态机模式。 typedef struct { ngx_array_t servers; /* ngx_http_core_srv_conf_t */ //http框架初始化后各个http模块构造的处理方法组成phase_engine,由下面各阶段处理方法构成的phase数组构建的阶段引擎才是流水式处理http请求的实际数据结构 ngx_http_phase_en原创 2020-09-11 10:46:43 · 474 阅读 · 0 评论 -
nginx源码分析--多路复用epoll的初始化流程
NGX_EVENT_MODULE类型的module有两个: (1)ngx_event_core_module 第一个事件类型模块,它的主要功能是负责解析事件类配置项,选择事件处理机制(select,poll,epoll还是kequeue机制),创建连接池,预分配读写事件池等。ngx_event_core_commands[] 中指定处理conf配置的关于sevents的配置项 (2)ngx_epoll_module /** * 工作进程初始化 */ static void ngx_worker_proc原创 2020-09-11 09:45:50 · 235 阅读 · 0 评论 -
nginx源码分析--module模块的初始化
谈一下zeromq的整体架构: zeromq作为一种高性能的消息队列中间件,主要依赖于linux的异步机制,所有的操作全部在子线程中处理,不会阻塞主线程。 具体对线程的封装类: (1)io_thread: class io_thread_t : public object_t, public i_poll_events { public: io_thread_t (zmq::ctx_t *ctx_, uint32_t tid_); // Clean-up原创 2020-09-11 08:58:59 · 500 阅读 · 0 评论