Nginx中的FastCGI怎么配置優化

這篇“Nginx中的FastCGI怎么配置優化”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Nginx中的FastCGI怎么配置優化”文章吧。

我們提供的服務有:成都網站設計、做網站、微信公眾號開發、網站優化、網站認證、子洲ssl等。為近1000家企事業單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的子洲網站制作公司

fastcgi:

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

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

nginx不支持對外部程序的直接調用或者解析,所有的外部程序(包括php)必須通過fastcgi接口來調用。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中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;

上述代碼的含義:

  • 第一行代碼是為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怎么配置優化”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注創新互聯行業資訊頻道。

文章題目:Nginx中的FastCGI怎么配置優化
網站URL:http://www.kartarina.com/article4/pgcioe.html

成都網站建設公司_創新互聯,為您提供云服務器微信公眾號關鍵詞優化服務器托管品牌網站設計網站營銷

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都網頁設計公司
主站蜘蛛池模板: 18禁超污无遮挡无码免费网站| 亚洲欧洲国产综合AV无码久久| 无码av专区丝袜专区| 韩国无码AV片在线观看网站| 乱人伦人妻中文字幕无码久久网 | 精品欧洲AV无码一区二区男男 | 无码人妻一区二区三区免费视频 | 亚洲一本大道无码av天堂| 中文字幕人妻无码一夲道| 精品无码一区在线观看| 亚洲AV无码成H人在线观看| 日韩精品少妇无码受不了| 国产成人无码A区在线观看视频| 在线a亚洲v天堂网2019无码| 色国产色无码色欧美色在线| 国产v亚洲v天堂无码网站| 内射中出无码护士在线| 亚洲精品无码久久毛片波多野吉衣| 国产精品无码素人福利| 亚洲成a∨人片在无码2023| 亚洲AV无码一区二区二三区软件| 全免费a级毛片免费看无码| 97久久精品无码一区二区| 日日摸日日碰夜夜爽无码| 亚洲AV无码精品色午夜果冻不卡| 乱人伦人妻中文字幕无码久久网| 亚洲另类无码专区首页| 亚洲av无码专区在线| 亚洲av无码潮喷在线观看| 日韩人妻无码一区二区三区 | 在线a亚洲v天堂网2019无码| 欧洲黑大粗无码免费| 国产精品无码无需播放器| 国产乱人伦中文无无码视频试看| 伊人久久大香线蕉无码| 久久AV高潮AV无码AV| 精品久久久久久无码国产| 亚洲国产精品无码久久SM| 亚洲爆乳大丰满无码专区| 国产精品亚韩精品无码a在线| 免费看又黄又无码的网站|