fastcgi配置
我們這里說的fastcgi配置專指nginx對fastcgi的配置,fastcgi本身的配置介紹在fastcgi 安裝文中有說明。
nginx的fastcgi模塊提供的命令
fastcgi_pass
這個命令是指定將http代理到哪個fastcgi服務端接口。fastcgi_pass后面是填寫fastcgi服務端地址的,這個地址可以是域地址,也可以是Uninx-域套接字。
fastcgi_pass localhost:9000;
fastcgi_pass unix:/tmp/fastcgi.socket;
這里的設置需要和fastcgi自身配置的listen_address做相應地對應。
比如上面那個例子,listen_addree就應該這么配置:
<value name="listen_address">/tmp/fastcgi.socket</value>
fastcgi_param
這個命令是設置fastcgi請求中的參數,具體設置的東西可以在$_SERVER中獲取到。
比如你想要設置當前的機器環境,可以使用fastcgi_param ENV test;
來設置。
對於php來說,最少需要設置的變量有:
fastcgi_param SCRIPT_FILENAME /home/www/scripts/php$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
對於POST請求,還需要設置:
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param還可以使用if_not_empty進行設置。意思是如果value非空才進行設置。
fastcgi_param HTTPS $https if_not_empty;
fastcgi_index
這個命令設置了fastcgi默認使用的腳本。就是當SCRIPT_FILENAME沒有命中腳本的時候,使用的就是fastcgi_index設置的腳本。
以上三個命令能組成最基本的fastcgi設置了
location / {
fastcgi_pass localhost:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/www/scripts/php$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
}
fastcgi_hide_header,fastcgi_ignore_headers,fastcgi_pass_header
fastcgi_cache
這個命令是開啟fastcgi的文件緩存。這個緩存可以將動態的頁面存為靜態的。以提供為加速或者容災使用。