- 博客(7)
- 资源 (1)
- 收藏
- 关注
原创 nginx中被忽略的RST
所用nginx版本为1.2.0,现在看有点老了,新版本已经有很多改进,后面会提到。问题场景就是上篇blog中最后提到的:nginx收到client的请求,然后连接一个up-server(这里是一个tomcat),并将请求发给它,tomcat产生数据,返回给nginx;但此时由于nginx任务过重,没能及时读取数据,导致tcp接收缓冲满了,tcp窗口长时间为0;tomcat的写请求最终超时,
2014-04-25 20:51:06 6623 1
原创 nginx中rewrite配置规则
nginx中rewrite模块,有如下一些指令:set if returnbreak rewrite ...另外还有一些可用的全局变量,如:$content_length$
2014-04-15 10:40:44 1171
原创 nginx官网所解释的location配置规则
syntax:location [ = | ~ | ~* | ^~ ] uri { ... }location @name { ... }default:—context:server, locationSets configuration depending on a request URI.The matching is perf
2014-04-08 20:16:58 946
原创 利用nginx的事件模型开发自己的应用
Nginx拥有大名鼎鼎的事件模型,在初始化介绍后循环调用ngx_process_events_and_timers(cycle),来处理各种事件。并且其高效的时间模块,能很方便地控制各event的超时等。这样的一套机制,不仅适用于http,mail等应用,甚至我们可以不管nginx里的网络功能,利用这套event机制,开发一个本地的小应用。这样做很好玩,也可以更好的学习nginx的事件、时间模
2014-03-27 15:25:54 756
原创 简易array内存池实现
应用场景:一个程序执行过程中,需要动态分配非常多的某struct,以构成链表或其它什么的。若每次都malloc,会极大地影响效率,可以预先分配一大片空间池,构成struct[]数组,要用时,从里面取一个。当该池全部用完时,自动分配下一个池。这个方法比较通用,缺点是不具备回收功能。要想实现回收,可以在每个array元素中,添加next、prev,构成使用list、未使用list,可以参考ngin
2014-03-26 10:41:07 496
原创 简易的字符串内存池实现
有很多这样的应用场景:不停的产生一些字符串,并串联在一起,最后一起输出。这种场景的特点是,最终字符串的长度是不确定的。借鉴ngx_poop_t的实现,做一个简单的内存池,代码如下:typedef struct buf_list_s buf_list_t;struct buf_list_s { buf_list_t *next; /* 当一个用满时,重新申请一个,组成链表 */ buf
2014-03-25 22:27:07 684
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人