Nginx的proxy buffer參數總結


1. proxy_buffering

語法:proxy_buffering on|off
默認值:proxy_buffering on
上下文:http,server,location

作用:該指令開啟從后端被代理服務器的響應body緩沖。
    如果proxy_buffering開啟,nginx假定被代理的后端服務器會以最快速度響應,並把內容保存在由指令 proxy_buffer_size 和 proxy_buffers 指定的緩沖區里邊.
    如果響應body無法放在內存里邊,那么部分內容會被寫到磁盤上。
    如果proxy_buffering被關閉了,那么響應body會按照獲取body的多少立刻同步傳送到客戶端。nginx不嘗試計算被代理服務器整個響應body的大小,nginx能從服務器接受的最大數據,是由指令 proxy_buffer_size指定的。
    對於基於長輪詢(long-polling)的Comet 應用來說,關閉 proxy_buffering 是重要的,不然異步響應將被緩存導致Comet無法工作。
    但是無論proxy_buffering是否開啟,proxy_buffer_size都是生效的

2. proxy_buffers

語法:proxy_buffers  數量  size
默認值:proxy_buffers 256 8k
上下文:http,server,location

作用:設置存儲被代理服務器響應的body所占用的buffer個數和每個buffer大小。
    具體的意思是說,開辟256個長度為8k大小的read_buf用來存儲body,當然不是連接建立初始化時就開辟256個,而是當當前buf不夠存響應body時才會新申請一個,最多申請256個buf。

3. proxy_buffer_size

語法:proxy_buffer_size size
默認值:proxy_buffer_size 4k/8k
上下文:http,server,location

作用:Nginx使用該大小申請read_buf,即大小指定了 upstream header 最大長度,如果響應頭超過了這個長度,Nginx會報upstream sent too big header錯誤,然后client收到的是502。

4. proxy_busy_buffer_size

語法:proxy_busy_buffer_size  size
上下文:http,server,location

作用:proxy_busy_buffers_size不是獨立的空間,他是proxy_buffers和proxy_buffer_size的一部分。
    nginx會在沒有完全讀完后端響應就開始向客戶端傳送數據,所以它會划出一部分busy狀態的buffer來專門向客戶端傳送數據(建議為proxy_buffers中單個緩沖區的2倍),然后它繼續從后端取數據。
    proxy_busy_buffer_size參數用來設置處於busy狀態的buffer有多大。

1)如果完整數據大小小於busy_buffer大小,當數據傳輸完成后,馬上傳給客戶端;
    2)如果完整數據大小不小於busy_buffer大小,則裝滿busy_buffer后,馬上傳給客戶端;

5. proxy_temp_path

語法:proxy_temp_path  path [level1 level2 level3]
默認值:proxy_temp_path proxy_temp
上下文:http,server,location

作用:定義proxy的臨時文件存在目錄以及目錄的層級。

6. proxy_max_temp_file_size

語法:proxy_max_temp_file_size size;
默認值:proxy_max_temp_file_size 1024m;
上下文:http, server, location

作用:設置臨時文件的總大小

7. proxy_temp_file_wirte_size

作用:設置同時寫入臨時文件的數據量的總大小。通常設置為8k或者16k。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM