
lighttpd 源码学习
春泥面包
这个作者很懒,什么都没留下…
展开
-
lighttpd源码学习
// 固定产生 10 个worker进程工作, 有worker退出时, 重新创建worker。// 类似于lighttpd 的 watcher,worker模型// 参考:http://bbs.chinaunix.net/thread-1251434-1-1.html#include #include #include #include void child_main()原创 2015-08-28 17:10:57 · 1342 阅读 · 0 评论 -
lighttpd-1.4.39 : mod_staticfile
http://www.cnblogs.com/kernel_hcy/archive/2010/04/07/1706587.html前面大概的介绍了一下lighttpd的状态机。在这篇中,将通过状态机,看看lighttpd到底是怎样处理连接请求的。在本篇中,我们只介绍lighttpd的最基本功能──处理静态页面。lighttpd处理静态页面要使用mod_staticfile.c插件。从名字中也可以看转载 2016-02-25 20:28:58 · 783 阅读 · 0 评论 -
lighttpd-1.4.39 : state machine
http://www.cnblogs.com/kernel_hcy/archive/2010/03/24/1694203.html转载 2016-02-25 17:00:05 · 809 阅读 · 0 评论 -
lighttpd-1.4.39 : connection
http://www.cnblogs.com/kernel_hcy/archive/2010/03/24/1694203.html前面讲了lighttpd是怎样使用fdevent系统的,以及监听socket的处理过程。这一篇我们来看一看lighttpd是怎样处理连接socket的。 首先,我们来看看lighttpd是怎样建立和客户端的连接的。前面在讲监听socket的处理过程中其实已经讲解了连接转载 2016-02-25 14:16:26 · 960 阅读 · 0 评论 -
lighttpd-1.4.39 : array
array的定义typedef enum { TYPE_UNSET, TYPE_STRING, TYPE_COUNT, TYPE_ARRAY, TYPE_INTEGER, TYPE_FASTCGI, TYPE_CONFIG } data_type_t;#define DATA_UNSET \ data_type_t type; \ buffer *key; \ int is_原创 2016-02-03 21:56:10 · 554 阅读 · 0 评论 -
lighttpd-1.4.39 : fdevents and Event Handler
重要参考: http://bbs.chinaunix.net/thread-1251434-2-1.html lighttpd对网络的I/O事件进行了封装,并且实现了几种事件处理器。可以通过配置文件来选择使用哪种事件处理器。可以使用的事件处理器有:select、poll、epoll等。对网络I/O事件的封装lighttpd对网络的IO事件进行了封装,使用结构体 fdevent表示。ty原创 2016-02-14 16:55:39 · 819 阅读 · 0 评论 -
lighttpd-1.4.39 : plugin
原文:http://www.cnblogs.com/kernel_hcy/archive/2010/03/11/1683809.html在lighttpd中,使用插件(plugin)的形式来增加服务的功能。同时,lighttpd提供了一个插件的公共接口给开发者,方便第三方提供额外的插件。lighttpd的插件接口主要提供在plugin.h文件中。其中,plugin结构体是最核心的部分。 plug转载 2016-02-15 16:25:45 · 1099 阅读 · 0 评论 -
lighttpd-1.4.39 : alarm
原文: http://bbs.chinaunix.net/thread-1251434-5-1.html本节相对简单, 讲讲lighttpd中如何处理超时的连接. 方法很简单, lighttpd创建一个每隔一秒触发的定时器, 被触发后查找当前的所有连接, 看它们的时间是否已经超过了最长的生存期, 如果是就关闭连接.创建定时器的代码在server.c的main函数中:#ifdef USE_ALAR转载 2016-02-15 11:34:41 · 621 阅读 · 0 评论 -
lighttpd-1.4.39 : watcher and worker
参考: http://bbs.chinaunix.net/thread-1251434-1-1.html http://www.cnblogs.com/kernel_hcy/archive/2010/02/11/1667654.html工作模式lighttpd采用多进程模型,有一个watcher和N个worker进程。watcher负责创建worker并且监控是否有worker退出,原创 2016-02-08 16:28:27 · 715 阅读 · 0 评论 -
lighttpd 的安装和使用
lighttpd 的安装https://help.ubuntu.com/community/lighttpd查看端口80被谁占用$ sudo netstat -lptn | grep 80tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 5969/lighttpd原创 2016-01-29 16:33:53 · 3523 阅读 · 2 评论 -
lighttpd-1.4.39 : buffer
参考: http://www.cnblogs.com/kernel_hcy/archive/2009/11/04/1594134.html字符串lighttpd需要对字符串进行处理,源文件是buffer.c buffer.h buffer的定义如下所示,注释写的很清晰。/* generic string + binary data container; contains a terminatin原创 2016-02-04 21:03:13 · 618 阅读 · 0 评论 -
Lighttpd中CGI执行流程
原文: http://blog.youkuaiyun.com/lenky0401/article/details/4201713对于Lighttpd中CGI执行流程的多余文字不用过多说明,图片里已经基本说的很清楚了。从图中,我们可以看到对于客户端的每一个请求(动态页面,也就是需要CGI处理的),Lighttpd进程都是先fork一个CGI进程,然后将请求头(通过环境参数)和请求体(通过转载 2016-04-26 13:33:12 · 3240 阅读 · 0 评论