- 博客(4)
- 收藏
- 关注
nginx中handler的处理(二)
这次我们来看各个phase的checker的处理。首先我们要弄明白一个事情,那就是在nginx中,一般来说,都是在NGX_HTTP_CONTENT_PHASE中调用outputfilter的,也就是说filter是在handler中调用的,这样看来只能有一个handler能够执行outputfiler.所以说在写nginx的handler模块的话,要注意不同的phase的返回值代表的不同意...
2010-05-30 18:33:39 507
原创 nginx中handler的处理(一)
nginx中的处理一个http的请求分为了8个phase,分别是下面几个阶段.其中特别要注意就是几个rewrite阶段。[code="java"]typedef enum {//读取请求phase NGX_HTTP_POST_READ_PHASE = 0,//接下来就是开始处理//这个阶段主要是处理全局的(server block)的rewrite。 ...
2010-05-20 01:09:57 724
nginx中的output chain的处理(二)
接着上次的分析继续,这次我们来看filter链中最关键的一个模块,那就是ngx_http_copy_filter_module模块,这个filter主要是用来将一些需要复制的buf(文件或者内存)重新复制一份然后发送给剩余的body filter,这里有个很重要的部分,那就是在这里nginx的剩余的body filter有可能会被调用多次,这个接下来我会一一阐述的。先来看它的初始化函数:[...
2010-05-09 13:45:42 506
nginx中锁的设计以及惊群的处理
nginx中使用的锁是自己来实现的,这里锁的实现分为两种情况,一种是支持原子操作的情况,也就是由NGX_HAVE_ATOMIC_OPS这个宏来进行控制的,一种是不支持原子操作,这是是使用文件锁来实现。首先我们要知道在用户空间进程间锁实现的原理,起始原理很简单,就是能弄一个让所有进程共享的东西,比如mmap的内存,比如文件,然后通过这个东西来控制进程的互斥。说起来锁很简单,就是共享一...
2010-05-03 02:13:15 317
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人