Nginx+FastCgi+Php 的工作机制
近半年一直在做服务迁移的事情,现在遇到一个问题,需要将WebServer从Nginx替换为Apache.
今天查阅了相关资料:Nginx+FastCgi+Php 的工作机制.
FastCgi是通讯协议,可以通过Unix套接字或者Tcp进行通讯.Nginx内置基本模块FastCgi模块(控制缓存区大小等功能)
Nginx通过FastCgi技术和外部的服务或者工具一起工作.Php自己能够运行一个Fastcgi应用程序(php-fcgi)..
Nginx通过FastCgi协议将请求发送给Php Fastcgi应用程序执行
编译Php的时候配置--enable-fastcgi.可以通过二种方法运行FastCgi Server
第一种就是将php编译进FastCgi Server.另外就是借助第三方的wrapper(比如Lighttpd的spawn-fcgi),稳定性更好.
最后需要配置Nginx将请求发送之Php的本地端口中.Nginx通过Upstream异步的处理后端的请求.总体来说对比Apache+Php的方式更能节省内存.
而目前PHP-FPM是目前最好的管理PHP的FastCGI处理器.在高版本的Php中已经编译进内核了.
主要特点就是能动态负载均衡php-fcgi,更好的切换php-fcgi进程.更好的启动和重启php worker(不丢失请求).能够以不同的用户,权限启动.
而未来支持的特性包括
1:编译进PHP内核(已完成)
2:处理模型:自适应的进程swawning.更好的利用多核Cpu
3:配置文件的定制化
4:内部处理基于libevent(有必要吗?)
5:per-pool :定制不通的pool基于不同的PHP.in
6:更多的工具:比如通过syslog记录日志,动态显示Php处理的状态(Mysql的show proceslist)
可以查看http://redmine.lighttpd.net/projects/spawn-fcgi/ 的代码实现
建议继续学习:
- 配置Nginx+uwsgi更方便地部署python应用 (阅读:105382)
- 搜狐闪电邮箱的 Nginx/Postfix 使用模式 (阅读:32506)
- 解析nginx负载均衡 (阅读:14456)
- 我的PHP,Python和Ruby之路 (阅读:11829)
- Nginx模块开发入门 (阅读:9835)
- 检查nginx配置,重载配置以及重启的方法 (阅读:9060)
- PHP程序的执行流程 (阅读:9023)
- Cacti 添加 Nginx 监控 (阅读:8897)
- nginx的配置文件 (阅读:8793)
- 奇怪的 Nginx 的 upstream timed out 引起响应 502 (阅读:8085)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:ywdblog 来源: 技术 总结 记录 生活 工作
- 标签: FastCgi Nginx php 工作机制
- 发布时间:2011-06-01 13:41:04
- [66] Go Reflect 性能
- [66] Oracle MTS模式下 进程地址与会话信
- [65] 如何拿下简短的域名
- [59] IOS安全–浅谈关于IOS加固的几种方法
- [59] android 开发入门
- [59] 图书馆的世界纪录
- [58] 【社会化设计】自我(self)部分――欢迎区
- [53] 视觉调整-设计师 vs. 逻辑
- [47] 界面设计速成
- [47] 读书笔记-壹百度:百度十年千倍的29条法则