Archives – Author
September 4th, 2009
前阵子在折腾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结束
}
ngx_http_foo_post_handler(){
// 请求全部读完后从这里入口, 可以产生响应
ngx_http_finalize_request(r, NGX_HTTP_OK);
}
一般的模块都是同步方式的, 我开始就没搞明白这异步读到底怎么搞, 走了不少弯路. 代码上可以简单参考dav模块, 复杂点还有upload模块.
Nginx可能会把request body放到两个buffer里面, 太大的话也可能存入文件中. 如果要在模块中读取request body进行处理, 自然不希望搞太麻烦,可以:
r->request_body_in_single_buf = 1;
使body存在一个buffer里面, 配置里面要留够需要的大小.
如果没有特殊的要求, 这类模块也可以拿 embedded perl 来写. 响应产生, sendfile都支持. Perl的开发效率自然很高, 维护也方便. 作者说此功能还是"experimental", 但实测了下没出啥问题.
我本着先写原型的目的试验了下, 结果发现性能还不错, 在双路5130机器上, perl版本的可以达到15k req/s (使用ab测试), 非常够用了.
Tags: dev, module, nginx, perl, webserver, 模块开发
Posted in tech | 2 Comments »
August 7th, 2009
其实那倒也算是项帕累托改进。
由于内在悲剧性,余下的不如意也是难免的了。
祝好。
Posted in life | Comments Off
May 30th, 2009
今天很神奇,不少人包括我的邮箱中都出现了不止一封这样的邮件:
混蛋网:混蛋的人办的网,为同样有混蛋需求的人打理无聊的时间!
欢迎光临:http://www.oiegg.com
在这里,我们一起为做混蛋的事骄傲,多给师大丢脸,多给中国人丢脸!
谁最无耻,我最无耻,你的加入是我们共同的无耻!
张**(经理) 手机:158101*****
谢巧*(助理) 电话:010-5880****
混蛋网:http://www.oiegg.com
邮件用了假的信封地址, 分别是 info#bnu.edu.cn, admin#oiegg.com。不过呢,邮件头有这样一行“ Sender: yanhuangxiu@sohu.com ” ,说明还是欠点火候呢。
很高兴看到我的blog在“菏泽市东方酒厂”这个关键词上的排名日日见长。
Tags: oiegg
Posted in life | 8 Comments »
May 20th, 2009
早上一来,收到这样一封邮件:
尊敬的北师大蛋蛋网管理处领导:
您好!
我们是菏泽市东方酒厂,最近发现在贵校“蛋蛋网”求职交流栏,有对于我们企业不负责任的诋毁言论(对于其合理建议我们将虚心采纳),违反了国家关于网络言论损坏集体荣誉的行为,给我们企业招聘带来了负面影响,请北师大蛋蛋网领导及管理人员本着负责任的态度将其中诋毁言论(三天内)删除,请答复!谢谢!
东方酒厂行政部
2009年5月19日
哎哟哎哟,看了看论坛帖子,我赶紧回复:
您把我们”处理”了还发了”决定”过来,真是感谢
为什么最近老会遇到这么二的事呢?真应该检讨检讨人品呢!
update 05-21 :
他们的seo意识很强,第一时间就来留言,可惜被Akismet判为spam鸟
Tags: oiegg
Posted in life | 3 Comments »
April 6th, 2009
Tags: geowhy
Posted in geowhy | 6 Comments »
March 30th, 2009
被面试,问题本来可以记得很清楚,现在忘了.大约是ELF文件格式之类,总之是答不上来,很努力的想,然后就醒来了.
在公司午睡,醒来三次,分别遇见不同的人,最后天色变得很诡异,灯也不亮,象是沙尘暴来了,但周围的人都很镇定的在工作,我只好尝试假装工作,但想不起口令,就醒来了.
读一篇blog,大约是不许联想吧,写的是某个人结婚的事,有鼻子有眼,但显然,是在做梦,因为被子掉了.
ps: 本来没准备发的,但今天备案成功,十分难得,还是凑了一篇.
Posted in life | 7 Comments »
January 6th, 2009
所谓"李鸿章接受《纽约时报》采访"的文章好久之前就见过,一直只有转来转去的中文,不见英文原件,疑为伪作。
今日在 NYTimes 上翻出原文: LI ON AMERICAN HATRED 。
Posted in life | 3 Comments »
December 31st, 2008
对于2008年已经没有也许了,22小时后,一切都会成为过去时。
若干年后回想起来,2008会是一个重要的年份。
Farewell, 2008,我怀念你。生活仍然会继续。
这里没有字数限制,75个,足够了。
Posted in life | 1 Comment »
Next page
Previous page