存档

2011年1月 的存档

introduction to linux kernel tcp/ip procotol stack

2011年1月28日 没有评论

原创文章,转载请注明: 转载自pagefault

本文链接地址: introduction to linux kernel tcp/ip procotol stack

今天给公司同事做的分享.

Share
分类: kernel 标签: ,

nginx中http request处理的流程

2011年1月25日 2 条评论

原创文章,转载请注明: 转载自pagefault

本文链接地址: nginx中http request处理的流程

这次主要来看nginx如何处理一个http的流程,也就是接收请求,解析,然后接收完毕,然后开始发送数据,这一系列是如何流转起来的,通过上2篇,我们知道了nginx初始化完毕之后会休眠在epoll(或者kqueue等等).
下面就是nginx的事件处理流程图.

ngx_request
阅读全文…

Share
分类: nginx, server 标签: ,

nginx的启动流程分析(二)

2011年1月21日 1 条评论

原创文章,转载请注明: 转载自pagefault

本文链接地址: nginx的启动流程分析(二)

接上篇,这篇主要来看nginx的网络部分的初始化

首先是ngx_http_optimize_servers函数,这个函数是在ngx_http_block中被调用的,它的主要功能就是创建listening结构,然后初始化。这里ngx_listening_t表示一个正在监听的句柄以及它的上下文。

static ngx_int_t
ngx_http_optimize_servers(ngx_conf_t *cf, ngx_http_core_main_conf_t *cmcf,
    ngx_array_t *ports)
{
    ngx_uint_t             p, a;
    ngx_http_conf_port_t  *port;
    ngx_http_conf_addr_t  *addr;

    if (ports == NULL) {
        return NGX_OK;
    }

    port = ports->elts;
    for (p = 0; p < ports->nelts; p++) {
..................................................
//初始化listen结构
        if (ngx_http_init_listening(cf, &port[p]) != NGX_OK) {
            return NGX_ERROR;
        }
    }

    return NGX_OK;
}

阅读全文…

Share

nginx的启动流程分析(一)

2011年1月6日 1 条评论

原创文章,转载请注明: 转载自pagefault

本文链接地址: nginx的启动流程分析(一)

这篇我们会主要来分析配置文件相关的一些初始化,而在下一篇我们会详细分析http协议相关,以及socket的初始化信息。

nginx启动最重要的部分是在ngx_init_cycle中,我们接下来就会详细的分析这个函数,以及相关的函数.

下面就是ngx_init_cycle的流程图
nginx_cycle
阅读全文…

Share
分类: nginx, server, 源码阅读 标签: ,