中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Nginx中buffer參數的設置方法

發布時間:2021-07-09 17:05:33 來源:億速云 閱讀:159 作者:chen 欄目:大數據

這篇文章主要介紹“Nginx中buffer參數的設置方法”,在日常操作中,相信很多人在Nginx中buffer參數的設置方法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Nginx中buffer參數的設置方法”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

打開Nginx的error.log日志文件,發現很多warn的警告錯誤,提示:

①2016/03/25 13:18:35 [warn] 1171#0: *10875 an upstream response is buffered to a temporary file /var/cache/nginx/fastcgi_temp/0/08/0000000080 while reading upstream, client: 106.38.241.105, server: blog.tanteng.me, request: “GET /page/38/ HTTP/1.1”, upstream: “fastcgi://127.0.0.1:9000”, host: “blog.tanteng.me”.

如圖所示:

Nginx中buffer參數的設置方法

以及這樣的警告:

②2016/03/25 15:16:07 [warn] 6172#0: *1243 a client request body is buffered to a temporary file /var/cache/nginx/client_temp/0000000001, client: 193.201.227.83, server: blog.tanteng.me, request: “POST /xmlrpc.php HTTP/1.1”, host: “blog.tanteng.me”, referrer: “http://tantengvip.com/xmlrpc.php”

這個需要設置增加client_body_buffer_size的大小。緩沖區設置小了,Nginx會把內容寫到硬盤,這樣會影響性能。于是在nginx.conf中增加如下fastcgi buffers參數設置:

1

2

3

4

5

6

7

8

9

10

11

12

location ~ \.php$ {

    fastcgi_pass   127.0.0.1:9000;

    fastcgi_index  index.php;

    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

    fastcgi_connect_timeout 60;

    fastcgi_send_timeout 180;

    fastcgi_read_timeout 180;

    fastcgi_buffer_size 128k;

    fastcgi_buffers 256 16k;

    client_body_buffer_size 1024k;

    include        fastcgi_params;

}

經過設置后,一段時間內都沒有發現這種錯誤日志。

Nginx 的 buffer 機制

對于來自 FastCGI Server 的 Response,Nginx 將其緩沖到內存中,然后依次發送到客戶端瀏覽器。緩沖區的大小由 fastcgi_buffers 和 fastcgi_buffer_size 兩個值控制。

比如如下配置:

1

2

fastcgi_buffers      8 4K;

fastcgi_buffer_size  4K;

astcgi_buffers 控制 nginx 最多創建 8 個大小為 4K 的緩沖區,而 fastcgi_buffer_size 則是處理 Response 時第一個緩沖區的大小,不包含在前者中。所以總計能創建的最大內存緩沖區大小是 8*4K+4K = 36k。而這些緩沖區是根據實際的 Response 大小動態生成的,并不是一次性創建的。比如一個 8K 的頁面,Nginx 會創建 2*4K 共 2 個 buffers。

當 Response 小于等于 36k 時,所有數據當然全部在內存中處理。如果 Response 大于 36k 呢?fastcgi_temp 的作用就在于此。多出來的數據會被臨時寫入到文件中,放在這個目錄下面。

Buffer Size 優化

buffer的大小是你需要調優最重要參數。如果buffer size太小就會到導致nginx使用臨時文件存儲response,這會引起磁盤讀寫IO,流量越大問題越明顯。

client_body_buffer_size 處理客戶端請求體buffer大小。用來處理POST提交數據,上傳文件等。client_body_buffer_size 需要足夠大以容納如果需要上傳POST數據。

fastcgi_buffers,proxy_buffers 處理后端響應。如果這個buffer不夠大,同樣會引起磁盤都系IO。需要注意的是它們有一個上限值,這個上限值受 fastcgi_max_temp_file_size 、 proxy_max_temp_file_size控制。

FastCGI緩沖設置主要參數

fastcgi_buffers 4 64k

這個參數指定了從FastCGI進程到來的應答,本地將用多少和多大的緩沖區讀取,假設一個PHP或JAVA腳本所產生頁面大小為256kb,那么會為其分配4個64kb的緩沖來緩存;若頁面大于256kb,那么大于256kb的部分會緩存到fastcgi_temp指定路徑中,這并非是個好辦法,內存數據處理快于硬盤,一般該值應該為站點中PHP或JAVA腳本所產生頁面大小中間值,如果站點大部分腳本所產生的頁面大小為256kb,那么可把值設置為16 16k,4 64k等。

fastcgi_buffer_size=64k

讀取fastcgi應答第一部分需要多大緩沖區,該值表示使用1個64kb的緩沖區讀取應答第一部分(應答頭),可以設置為fastcgi_buffers選項緩沖區大小。

fastcgi_connect_timeout=300

連接到后端fastcgi超時時間,單位秒,下同。

fastcgi_send_timeout=300

向fastcgi請求超時時間(這個指定值已經完成兩次握手后向fastcgi傳送請求的超時時間)

fastcgi_reAd_timeout=300

接收fastcgi應答超時時間,同理也是2次握手后。

到此,關于“Nginx中buffer參數的設置方法”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

明溪县| 南涧| 台北县| 广州市| 忻城县| 随州市| 顺义区| 潮安县| 资阳市| 灵璧县| 万全县| 威信县| 滨海县| 福海县| 南陵县| 达尔| 苍山县| 宁河县| 孝感市| 印江| 梨树县| 靖西县| 奉化市| 郯城县| 烟台市| 治县。| 西畴县| 桐梓县| 荣昌县| 上栗县| 如东县| 九台市| 原平市| 陆良县| 蕲春县| 尤溪县| 承德市| 和田市| 连平县| 涿州市| 稻城县|