fastcgi:
fastcgi是從cgi發展改進而來的。傳統cgi介面方式的主要缺點是效能很差,因為每次http伺服器遇到動態程式時都需要重新啟動指令碼解析器來執行解析,然後結果被返回給http伺服器。這在處理高併發訪問時,幾乎是不可用的。另外傳統的cgi介面方式安全性也很差,現在已經很少被使用了。
fastcgi介面方式採用c/s結構,可以將http伺服器和指令碼解析伺服器分開,同時在指令碼解析伺服器上啟動乙個或者多個指令碼解析守護程序。當http伺服器每次遇到動態程式時,可以將其直接交付給fastcgi程序來執行,然後將得到的結果返回給瀏覽器。這種方式可以讓http伺服器專一地處理靜態請求或者將動態指令碼伺服器的結果返回給客戶端,這在很大程度上提高了整個應用系統的效能。
nginx不支援對外部程式的直接呼叫或者解析,所有的外部程式(包括php)必須通過fasanhkemlmlvtcgi介面來呼叫。fastcgi介面在linux下是socket,(這個socket可以是檔案socket,也可以是ip socket)。為了呼叫cgi程式,還需要乙個fastcgi的wrapper(wrapper可以理解為用於啟動另乙個程式的程式),這個wrapper繫結在某個固定socket上,如埠或者檔案socket。當nginx將cgi請求傳送給這個socket的時候,通過fastcgi介面,wrapper接納到請求,然後派生出乙個新的執行緒,這個執行緒呼叫直譯器或者外部程式處理指令碼並讀取返回資料;接著,wrapper再將返回的資料通過fastcgi介面,沿著固定的socket傳遞給nginx;最後,nginx將返回的資料傳送給客戶端,這就是nginx+fastcgi的整個運作過程。詳細的過程,如圖所示。
例子:nginx中fastcgi引數的優化配置例項
在配置完成nginx+fastcgi之後,為了保證nginx下php環境的高速穩定執行,需要新增一些fastcgi優化指令。下面給出乙個優化例項,將下面**新增到nginx主配置檔案中的http層級。
fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=test:10m inactive=5m;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
fastcgi_cache test;
fastcgi_cache_valid 200 302 1h;
fastcgi_cache_valid 301 1d;
fastcgi_程式設計客棧cache_valid any 1m;
上述**的含義:
本文標題: nginx中fastcgi如何配置優化
本文位址:
Nginx中FastCGI配置優化
fastcgi fastcgi是從cgi發展改進而來的。傳統cgi介面方式的主要缺點是效能很差,因為每次http伺服器遇到動態程式時都需要重新啟動指令碼解析器來執行解析,然後結果被返回給http伺服器。這在處理高併發訪問時,幾乎是不可用的。另外傳統的cgi介面方式安全性也很差,現在已經很少被使用了。...
Nginx中FastCGI配置優化
fastcgi fastcgi是從cgi發展改進而來的。傳統cgi介面方式的主要缺點是效能很差,因為每次http伺服器遇到動態程式時都需要重新啟動指令碼解析器來執行解析,然後結果被返回給http伺服器。這在處理高併發訪問時,幾乎是不可用的。另外傳統的cgi介面方式安全性也很差,現在已經很少被使用了。...
Nginx配置中FastCGI的幾個命令
nginx配置一直以來都在程式設計師的工作中不斷的使用,在這個中有很多的問題需要我們不斷的學習,其中fastcgi就是有不少的問題需要我們解決,下面就是關於fastcgi在nginx配置的幾個指令 fastcgi cache path usr local nginx fastcgi cache le...