適用php
Nginx經過fastcgi調用python, Perl和C++等寫的CGI程序。PHP有PHP-FPM (FastCGI Process Manager),這個對PHP來講更好的FastCGI進程管理器,關於PHP-FPM的更多信息,請Google php-fpm+nginx。python
原理nginx
Nginx並不提供支持對外部程序的直接調用或者解析(因此缺乏像apache裏的mod_php這樣的模塊),全部的外部程序(包括PHP)必須經過fastcgi接口來調用,在Linux下接口是socket (文件socket或者Internet socket)。因此爲了調用CGI程序,咱們須要一個fastcgi的wrapper,這個wrapper綁定在某個固定socket上(好比端口或者文件socket),當nginx將CGI請求發送給這個socket的時候,wrapper接納請求並fork一個新的線程,這個線程調用外部的程序或者解釋器處理腳本並讀取返回值,而wrapper再將返回的數據(網頁或者圖片等)經過fastcgi將數據經過那個固定的socket傳遞給nginx。示意圖以下:apache
因此,咱們首先須要一個wrapper,這個wrapper須要完成的工做:socket