Nginx中FastCGI配置優化

2021-08-19 10:29:56 字數 2115 閱讀 3351

fastcgi:

fastcgi是從cgi發展改進而來的。傳統cgi介面方式的主要缺點是效能很差,因為每次http伺服器遇到動態程式時都需要重新啟動指令碼解析器來執行解析,然後結果被返回給http伺服器。這在處理高併發訪問時,幾乎是不可用的。另外傳統的cgi介面方式安全性也很差,現在已經很少被使用了。

fastcgi介面方式採用c/s結構,可以將http伺服器和指令碼解析伺服器分開,同時在指令碼解析伺服器上啟動乙個或者多個指令碼解析守護程序。當http伺服器每次遇到動態程式時,可以將其直接交付給fastcgi程序來執行,然後將得到的結果返回給瀏覽器。這種方式可以讓http伺服器專一地處理靜態請求或者將動態指令碼伺服器的結果返回給客戶端,這在很大程度上提高了整個應用系統的效能。

例子:

在配置完成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;

上述**的含義:

第一行**是為fastcgi快取指定乙個檔案路徑、目錄結構等級、關鍵字區域儲存時間和非活動刪除時間。

fastcgi_connect_timeout指定連線到後端fastcgi的超時時間。

fastcgi_send_timeout指定向fastcgi傳送請求的超時時間,這個值是已經完成兩次握手後向fastcgi傳送請求的超時時間。

fastcgi_read_timeout指定接收fastcgi應答的超時時間,這個值是已經完成兩次握手後接收fastcgi應答的超時時間。

fastcgi_buffer_size用於指定讀取fastcgi應答第一部分需要用多大的緩衝區,這個值表示將使用1個64kb的緩衝區讀取應答的第一部分(應答頭),可以設定為fastcgi_buffers選項指定的緩衝區大小。

fastcgi_buffers指定本地需要用多少和多大的緩衝區來緩衝fastcgi的應答請求。如果乙個php指令碼所產生的頁面大小為256kb,那麼會為其分配4個64kb的緩衝區來快取;如果頁面大小大於256kb,那麼大於256kb的部分會快取到fastcgi_temp指定的路徑中,但是這並不是好方法,因為記憶體中的資料處理速度要快於硬碟。一般這個值應該為站點中php指令碼所產生的頁面大小的中間值,如果站點大部分指令碼所產生的頁面大小為256kb,那麼可以把這個值設定為「16 16k」、「4 64k」等。

fastcgi_busy_buffers_size的預設值是fastcgi_buffers的兩倍。

fastcgi_temp_file_write_size表示在寫入快取檔案時使用多大的資料塊,預設值是fastcgi_buffers的兩倍。

fastcgi_cache表示開啟fastcgi快取並為其指定乙個名稱。開啟快取非常有用,可以有效降低cpu的負載,並且防止502錯誤的發生,但是開啟快取也會引起很多問題,要視具體情況而定。

fastcgi_cache_valid、fastcgi用來指定應答**的快取時間,例項中的值表示將200和302應答快取乙個小時,將301應答快取1天,其他應答均快取1分鐘。

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...