who is me
yet another blog of georgexsh
Skip to content
About
Tag Archives:
module
Nginx模块开发小记
By
georgexsh
|
Published:
2009-9-4
前阵子在折腾Nginx的模块, 很有趣. 为了方便使用调试器, 可以单进程非daemon方式启动, 使用参数: daemon off; master_process off; 因为Nginx是事件驱动, 在读request body时, 第一个数据包一般发送不全, 需要异步读取余下的. 当在主handler部分调用ngx_http_read_client_request_body时, 需要注册一个回调的handler, 然后主handler直接返回NGX_DONE, 告诉Nginx留下这个请求的事件注册, 继续接收数据包. 经过若干次循环最终读完request body后, Nginx会去回调被注册的handler, 在此函数中产生响应, 最后调用ngx_http_finalize_request结束整个请求. 大概流程是: ngx_http_foo_handler(){ ngx_http_read_client_request_body(r, ngx_http_foo_post_handler); return NGX_DONE; // 主handler结束 } [...]
Posted in
tech
|
Also tagged
c
,
develope
,
nginx
,
perl
|
2 Comments
Recent Posts
最小化当前窗口的快捷键
Lighttpd覆盖设置http头
终于红了!
Fiddler中显示当前连接的主机地址
周末就这样过去了
Recent Comments
10月月报
on
不小心喝多了就是会手肘酸
yaleon
on
Lighttpd覆盖设置http头
georgexsh
on
Lighttpd覆盖设置http头
jianrtian
on
终于红了!
老奶奶
on
终于红了!
Categories
geowhy
lifelog
sitelog
tech
Archives
Select Month
January 2010 (1)
December 2009 (1)
November 2009 (3)
October 2009 (1)
September 2009 (1)
August 2009 (1)
May 2009 (2)
April 2009 (1)
March 2009 (1)
January 2009 (1)
December 2008 (1)
October 2008 (1)
August 2008 (5)
June 2008 (1)
April 2008 (4)
March 2008 (6)
February 2008 (2)
January 2008 (5)
December 2007 (2)
November 2007 (1)
August 2007 (1)
July 2007 (1)
May 2007 (1)
February 2007 (2)
January 2007 (1)
November 2006 (2)
July 2006 (4)
Nginx模块开发小记