優化Nginx中FastCGI參數的實例

優化Nginx中FastCGI參數的實例

在配置完成Nginx+FastCGI之後,爲了保證Nginx下PHP環境的高速穩定運行,需要添加一些FastCGI優化指令。下面給出一個優化實例,將下面代碼添加到Nginx主配置文件中的HTTP層級。

  1. fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=TEST:10m inactive=5m;  

  2. fastcgi_connect_timeout 300;  

  3. fastcgi_send_timeout 300;  

  4. fastcgi_read_timeout 300;  

  5. fastcgi_buffer_size 64k;  

  6. fastcgi_buffers 4 64k;  

  7. fastcgi_busy_buffers_size 128k;  

  8. fastcgi_temp_file_write_size 128k;  

  9. fastcgi_cache TEST;  

  10. fastcgi_cache_valid 200 302 1h;  

  11. fastcgi_cache_valid 301 1d;  

  12. 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用來指定應答代碼的緩存時間。實例中的值表示將200和302應答緩存一個小時,將301應答緩存1天,其他應答均緩存1分鐘。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章