Nginx配置中FastCGI的幾個命令

2022-08-02 11:03:11 字數 2658 閱讀 1083

nginx配置一直以來都在程式設計師的工作中不斷的使用,在這個中有很多的問題需要我們不斷的學習,其中fastcgi就是有不少的問題需要我們解決,下面就是關於fastcgi在nginx配置的幾個指令:

fastcgi_cache_path /usr/local/nginx/fastcgi_cache 

levels=1

:2 keys_zone

=test

:10m

inactive

=5m;

這個指令為nginx配置fastcgi快取指定乙個路徑,目錄結構等級,關鍵字區域儲存時間和非活動刪除時間。

fastcgi_connect_timeout 300; 

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

fastcgi_send_timeout 300; 

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

fastcgi_read_timeout 300; 

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

fastcgi_buffer_size 4k; 

指定讀取fastcgi應答第一部分需要用多大的緩衝區,一般第一部分應答不會超過1k,由於頁面大小為4k,所以這裡設定為4k。

fastcgi_buffers 8 4k; 

指定本地需要用多少和多大的緩衝區來緩衝fastcgi的應答。

fastcgi_busy_buffers_size 8k; 

這個指令我也不知道是做什麼用,只知道預設值是fastcgi_buffers的兩倍。

fastcgi_temp_file_write_size 8k; 

在寫入fastcgi_temp_path時將用多大的資料塊,預設值是fastcgi_buffers的兩倍。

fastcgi_cache test 

開啟fastcgi快取並且為其制定乙個名稱。個人感覺開啟快取非常有用,可以有效降低cpu負載,並且防止502錯誤。

fastcgi_cache_valid 200 302 1h;  

fastcgi_cache_valid 301 1d;

fastcgi_cache_valid any 1m;

為指定的應答**指定快取時間,如上例中將200,302應答快取一小時,301應答快取1天,其他為1分鐘。

fastcgi_cache_min_uses 1; 

快取在fastcgi_cache_path指令inactive引數值時間內的最少使用次數,如上例,如果在5分鐘內某檔案1次也沒有被使用,那麼這個檔案將被移除。

不知道這個引數的作用,猜想應該是讓nginx知道哪些型別的快取是沒用的。

在nginx運維中乙個超普遍的錯誤就是502 bad gateway,此錯誤出現的原因有很多,可參照此文:本文主要**fastcgi buffer的配置導致502 bad gateway。

nginx 的 buffer 機制:來自 fastcgi server 的 response,nginx 將其緩衝到記憶體中,然後依次傳送到客戶端瀏覽器。緩衝區的大小涉及的兩個引數是fastcgi_buffers 和 fastcgi_buffer_size 。

fastcgi_buffer_size指定將用多大的緩衝區來讀取從fastcgi程序到來應答頭。

fastcgi_buffers指定了從fastcgi程序到來的應答,本地將用多少和多大的緩衝區讀取。

如:fastcgi_buffer_size 16k;

fastcgi_buffers 16 16k;

那麼 fastcgi_buffer=16*16+16=272k

如果乙個php指令碼產生的頁面大小為32k,將分2個16k去快取頁面,如果乙個php指令碼所產生的頁面大小為256k,則會為其分配16個16k的緩衝區來快取,如果大於256k,增大於256k的部分會快取到fastcgi_temp指定的路徑中,如果想關閉對所有請求道磁碟的緩衝,可以將fastcgi_max_temp_file_size 設定為0。通常這個值的設定應該選擇乙個你的站點中的php指令碼所產生的頁面大小的中間值。如果您伺服器上的記憶體夠大,可以將以上引數適當調大。當然以上引數並不是越大越好,也沒多大實際意義,需要根據您的實際情況,如頁面大小及伺服器記憶體大小,如果以上引數太小的話,就會頻繁的往磁碟寫資料,對效能影響還是很大的,畢竟記憶體的速度比硬碟大的多,可以增大以上引數來增加緩衝區的大小。

fastcgi 模組配置手冊

以下為配置例項:

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;

Nginx中FastCGI配置優化

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

Nginx中FastCGI配置優化

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

Nginx中FastCGI如何配置優化

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