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)