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)
本文介绍了Nginx如何通过FastCgi模块与PHP进行交互,重点讨论了FastCgi的通讯方式、Nginx的FastCgi配置以及PHP的Fastcgi应用程序。Nginx使用FastCgi协议将请求转发给PHP-FPM,以节省内存资源。PHP-FPM提供动态负载均衡和进程管理,增强了系统的稳定性和性能。未来,FastCgi技术将可能实现更高效的进程孵化和自定义配置。

被折叠的 条评论
为什么被折叠?



