顧名思義,proxy_buffer 是用于 proxy 模式的緩沖功能。本文介紹其基本用法。
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務,包含不限于成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設、涿州網(wǎng)絡推廣、重慶小程序開發(fā)公司、涿州網(wǎng)絡營銷、涿州企業(yè)策劃、涿州品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)為所有大學生創(chuàng)業(yè)者提供涿州建站搭建服務,24小時服務熱線:18982081108,官方網(wǎng)址:bm7419.com
buffer 是什么
buffer ,即緩沖區(qū),它在 Nginx 上發(fā)揮的作用就是 啟用一個緩沖區(qū),先在這個緩沖區(qū)內(nèi)進行存儲,再把數(shù)據(jù)發(fā)送出去 。和在線觀看視頻有點類似,先把視頻文件緩沖一部分到本地再開始播放。
若沒有 buffer,數(shù)據(jù)將會直接從 Nginx 傳輸?shù)娇蛻舳?。假設如果客戶端的加載速度足夠快,你可以直接把 buffer 關掉,讓數(shù)據(jù)盡可能快地到達客戶端。
而使用 buffer,Nginx 將會臨時存儲后端 response 到緩沖區(qū),然后慢慢把數(shù)據(jù)發(fā)送到客戶端。啟用 buffer 的好處在于可以把數(shù)據(jù)一次性地發(fā)送給目標,相較于即時傳輸可以節(jié)約出這部分帶寬。
順帶一提,Nginx 全局配置中的 tcp_nopush 的作用就是 數(shù)據(jù)包會累計到一定大小之后才會發(fā)送 。而 tcp_nodelay 是盡快發(fā)送數(shù)據(jù),所以若你啟用了 buffer,建議關閉 tcp_nodelay。
下面總結(jié)下 nginx buffer 設置:
proxy_buffer_size 4k; proxy_buffering on; proxy_buffers 4 4k; proxy_busy_buffers_size 8k; proxy_max_temp_file_size 1024m;
首先,這些參數(shù)都是針對每一個http request ,不是全局的。
proxy_buffer 的配置
proxy_buffer 是用于 proxy 模式(一般也可稱為反向代理)的 buffer 配置。Nginx 有另外一種適用于 server 模式的 buffer 配置,這里本帖不做介紹。
proxy_buffer 包括了以下配置項:
需注意,以下指定的數(shù)值都是針對每一個 http request 的上限,而不是對于整個 buffer 區(qū)指定的上限。
proxy_buffering
proxy_buffering on;
在 proxy_buffering 開啟的時候,proxy_buffers 和 proxy_busy_buffers_size 才會起作用。
proxy_buffers
proxy_buffers 4 8k;
指定一個 request 的 buffer 的數(shù)量和大小。
proxy_buffer_size
proxy_buffer_size 4k;
指定后端 response 的 buffer 的大小。它是來自后端 response 的一部分,它包含 Headers,從 response 分離出來。它僅用于限定 headers 的 buffer 區(qū),所以它的值比 proxy_buffers 更低。
proxy_buffer_size 有一點特殊在于,無論 proxy_buffering 是否開啟,proxy_buffer_size 都會起作用。
proxy_busy_buffers_size
proxy_busy_buffers_size 12k;
忙時 buffer 的最大值。一個客戶端一次只能從一個 buffer 中讀取數(shù)據(jù)的同時,剩下的 buffer 會被放到隊列中,等待發(fā)送到客戶端,這個 directive 指定在這個狀態(tài)下的 buffer 的大小。
① 如果 proxy_buffers 關閉
Nginx不會嘗試獲取到后端服務器所有響應數(shù)據(jù)之后才返回給客戶端,Nginx 會盡快把數(shù)據(jù)傳給客戶端,在數(shù)據(jù)傳完之前,Nginx 接收到的最大緩存大小不能超過 proxy_buffer_size 。
② 如果 proxy_buffers 打開
Nginx將會盡可能的讀取后端服務器的數(shù)據(jù)到buffer,直到proxy_buffers設置的所有buffer們被寫滿或者數(shù)據(jù)被讀取完(EOF),此時Nginx開始向客戶端傳輸數(shù)據(jù),會同時傳輸這一整串buffer們。如果數(shù)據(jù)很大的話,Nginx會接收并把他們寫入到temp_file里去,大小由proxy_max_temp_file_size 控制?!府敂?shù)據(jù)沒有完全讀完的時候」,Nginx同時向客戶端傳送的buffer 大小 不能超過 proxy_busy_buffers_size 「此句可能理解有誤」。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。
文章標題:詳解Nginx啟用proxy_buffer緩沖
文章鏈接:http://bm7419.com/article24/gejjje.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供建站公司、移動網(wǎng)站建設、網(wǎng)站策劃、標簽優(yōu)化、品牌網(wǎng)站制作、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)