lighttpd中 CGI 执行原理图
来源:互联网 发布:装配式建筑 知乎 编辑:程序博客网 时间:2024/05/17 00:01
附图,lighttpd中 CGI 执行原理图。图中涉及到了两个进程间的通信:管道、信号。
Mark: 无名管道是半双工的,只能单向通信!
以下是转载内容:
转载自:http://lenky0401.cublog.cn
对于Lighttpd中 CGI执行流程的多余文字不用过多说明,图片里已经基本说的很清楚了。
从图中,我们可以看到对于客户端的每一个请求(动态页面,也就是需要CGI处理的),Lighttpd进程都是先fork一个CGI进程,然后将请求头(通过环境参数)和请求体(通过管道)传递给CGI程序,等待CGI处理并将从CGI进程那接收到的处理结果再响应给客户端,然后将CGI终止(通过发送SIGTERM信号)。
CGI的处理有一些缺点,先不说其它的,单从图中可以看到的就有:首先,对于客户端的每一个请求都需要fork一个CGI进程,然后在该请求处理结束后又将该CGI进程kill掉,性能自然是不高的。其次,Web Server(这里指Lighttpd)和CGI之间通信采用无名管道(PIPE)进行通信,因此具有无名管道的所有缺点(比如:Web Server进程和CGI必须具有亲缘关系;管道是半双工的,数据只能向一个方向流动,因此为了使Web Server和CGI进行双方通信,必须建立起两个管道等等)。由这两个缺点就衍生出很多其它的缺点,比如基本无法进行分布式部署和在CGI侧进行负载均衡等。
所以Lighttpd里除了提供CGI外,还有另外两个选择SCGI和FASTCGI,将陆续会有Lighttpd里的 SCGI,FASTCGI等模块的分析内容发出,感兴趣的网友可以关注,:)。
- lighttpd中 CGI 执行原理图
- Lighttpd(linux lighttpd)中CGI执行流程
- Lighttpd中CGI执行流程
- Lighttpd中CGI执行流程
- Lighttpd中CGI执行流程
- Lighttpd中cgi执行流程
- Lighttpd中CGI执行流程
- Lighttpd中CGI执行流程(转)
- Write CGI with Python (Lighttpd Server)
- Using shell scripts for CGI in lighttpd
- lighttpd + CGI,用c语言写cgi程序
- 用c写cgi程序,不能在cgi程序中执行shell命令
- Orcad 原理图中导出原理图封装
- ubuntu apache 执行 cgi
- 搭建一个轻量级服务器环境 LIGHTTPD + MYSQL + PHP(FAST-CGI)
- lighttpd+PHP(FAST-CGI)+mysql的学习笔记(转)
- lighttpd + ruby 迁移 nginx 日志(nginx 提供cgi支持)
- 在openwrt 下配置lighttpd,并使用PHP fast-cgi
- User Profile 同步问题
- 用Visual C++ 6.0编译xvid
- 第5章 数据库完整性(数据库系统概论)
- .NET 笔试题好多公司有这些题,值得.NET程序员收藏!
- 手机短信技术的实现
- lighttpd中 CGI 执行原理图
- Silverlight Toolkit--PivotViewer
- 弹出窗体
- android的logcat详细用法
- 总结出Ubuntu 9.04下编译Android源码的过程
- JavaScript判断浏览器的类型和版本
- Ubuntu配置samba--与windows共享文件
- apache2.2.9和resin3.1.9整合实战笔记
- apache2.2.9和resin3.1.9整合实战笔记