最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nginx代理緩沖proxy_buffering配置方式

 更新時間:2023年12月22日 15:46:13   作者:HaleyTiger  
這篇文章主要介紹了Nginx代理緩沖proxy_buffering配置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

什么是代理緩沖

Nginx作為一個常用的反向代理,提供了代理緩沖的功能。

它允許nginx將server端的響應讀取下來緩存在本地內(nèi)存或磁盤中,再已合適的速度發(fā)送給客戶端。

為什么要有代理緩沖

在互聯(lián)網(wǎng)中,nginx作為反向代理層,往往和server是在同區(qū)機房的。

這意外這nginx和server之間的網(wǎng)絡質(zhì)量很好,nginx可以用很快的速度從server端讀取響應。

但是客戶端往往是用戶網(wǎng)絡,到nginx的機房網(wǎng)絡質(zhì)量不可控,肯定是要遠遠低于nginx到后端server的網(wǎng)速。

這就會帶來一個問題:

因為客戶端到nginx的網(wǎng)速過慢,導致nginx只能以一個較慢的速度將響應傳給客戶端;進而導致后端server也只能以同樣較慢的速度傳遞響應給nginx,造成一次請求連接耗時過長。

在高并發(fā)的情況下,后端server可能會出現(xiàn)大量的連接積壓,最終拖垮server端。

代理緩沖的優(yōu)缺點

代理緩沖的優(yōu)點

(1)開啟代理緩沖后,nginx可以用較快的速度盡可能將響應體讀取并緩沖到本地內(nèi)存或磁盤中,然后同時根據(jù)客戶端的網(wǎng)絡質(zhì)量以合適的網(wǎng)速將響應傳遞給客戶端。

(2)這樣既解決了server端連接過多的問題,也保證了能持續(xù)穩(wěn)定的像客戶端傳遞響應。

代理緩沖的缺點

(1)開啟代理緩沖會消耗nginx服務器的內(nèi)存,如果請求過多,可能會導致nginx內(nèi)存消耗過大;所以緩沖區(qū)的大小設置需要根據(jù)實際的服務器配置和請求量進行評估。

(2)在響應過大的情況下,設置的緩沖區(qū)無法存下整個響應體,nginx會將剩余的內(nèi)容寫到磁盤臨時文件中。在請求量較大的情況下,可能會導致nginx服務器磁盤io過高。而往往臨時文件都存放在/tmp下,而/tmp目錄一般掛載在系統(tǒng)盤上,系統(tǒng)盤io過高會進一步導致系統(tǒng)負載上漲。

(3)在客戶端網(wǎng)絡質(zhì)量很好的情況下,比如客戶端到nginx也是同機房內(nèi),這時關閉代理緩沖直接將響應實時轉(zhuǎn)發(fā)給客戶端效率更高。

代理緩沖的配置參數(shù)

nginx對于控制代理緩沖區(qū),有一些常用的配置參數(shù)。這些參數(shù)都是可以作用于http塊、server塊或者location塊中。

1. proxy_buffering

Syntax:	proxy_buffering on | off;
Default:	proxy_buffering on;
Context:	http, server, location

復制代碼該參數(shù)用戶控制開啟或關閉代理緩沖區(qū)。

當開啟代理緩沖區(qū)時,nginx會盡快的從server端讀取響應并緩存在內(nèi)存分配的緩沖區(qū)中。代理緩沖區(qū)的大小由proxy_buffer_size和proxy_buffers參數(shù)指定。

當響應大小超出內(nèi)存緩沖區(qū)時,一部分響應體可以保存在磁盤臨時文件中。磁盤臨時文件的大小由proxy_max_temp_file_size和proxy_temp_file_write_size參數(shù)指定。

2. proxy_buffer_size

Syntax:	proxy_buffer_size size;
Default:	proxy_buffer_size 4k|8k;
Context:	http, server, location

復制代碼該參數(shù)用于設置從server端讀取初始部分響應(the first part of the response)所使用的緩存大小。這部分通常包含了一個小的response header。

通常,該緩沖區(qū)大小設置為一個內(nèi)存頁的大小,具體是4k或8k,取決于服務器平臺。也可以把它設置的更小,但是沒必要設置過大了,因為只是用于緩沖初始部分響應。

值得注意的是,proxy_buffer_size參數(shù)并不受proxy_buffering開啟或關閉的影響。它始終都是生效的。

3. proxy_buffers

Syntax:	proxy_buffers number size;
Default:	proxy_buffers 8 4k|8k;
Context:	http, server, location

復制代碼該參數(shù)用于設置從server端讀取響應所使用的緩沖區(qū)個數(shù)和大小。通常默認情況下,單個緩沖區(qū)大小設置為一個內(nèi)存頁的大小,如4k或8k。

值得注意的是,這里設置的緩沖區(qū)大小是針對每個請求連接而言的。也就是說對于每一個連接,都會分配 ”number*size“大小的內(nèi)存緩沖區(qū)。

另外需要注意,要根據(jù)服務器配置和請求量評估緩沖區(qū)配置大??;避免出現(xiàn)nginx將內(nèi)存耗盡的情況。

4. proxy_busy_buffers_size

Syntax:	proxy_busy_buffers_size size;
Default:	proxy_busy_buffers_size 8k|16k;
Context:	http, server, location

復制代碼該參數(shù)用于設置當還未從server端讀取到完整響應時,允許開始給客戶端發(fā)送響應的緩沖區(qū)大小。

在指定大小的緩沖區(qū)進入busy狀態(tài)后將無法再寫入,而剩余的緩沖區(qū)可以同時繼續(xù)從server端讀取響應,或者將響應寫入磁盤臨時文件。

通常該參數(shù)值設置為proxy_buffer_size和proxy_buffers中單個buffer之和,也就是單個內(nèi)存頁的2倍。

5. proxy_max_temp_file_size

Syntax:	proxy_max_temp_file_size size;
Default:	proxy_max_temp_file_size 1024m;
Context:	http, server, location

復制代碼該參數(shù)用于設置磁盤臨時文件的最大size。

當server端返回的整個響應超出proxy_buffering和proxy_buffers設置的內(nèi)存緩沖區(qū)大小時,剩余的響應體可以保存在一個磁盤臨時文件中。proxy_max_temp_file_size指定了該臨時文件的最大大小。

而一次能寫入磁盤臨時文件的數(shù)據(jù)大小由proxy_temp_file_write_size參數(shù)指定。

注意,proxy_max_temp_file_size參數(shù)設置為0可以禁止將響應保存到磁盤臨時文件中。

6. proxy_temp_file_write_size

Syntax:	proxy_temp_file_write_size size;
Default:	proxy_temp_file_write_size 8k|16k;
Context:	http, server, location

復制代碼該參數(shù)用于設置每次寫入磁盤臨時文件的大小。

通常該參數(shù)值設置為proxy_buffer_size和proxy_buffers中單個buffer之和,也就是單個內(nèi)存頁的2倍。

代理緩沖配置樣例

# 開啟proxy_buffering
    proxy_buffering                 on;
    proxy_buffer_size               4k;
    proxy_buffers                   4       4k;
    proxy_busy_buffers_size         8k;
    proxy_max_temp_file_size        0;

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

最新評論

宜春市| 遂平县| 嵩明县| 锡林郭勒盟| 田阳县| 阿拉尔市| 锦州市| 马鞍山市| 大化| 开封市| 正镶白旗| 石河子市| 双峰县| 名山县| 阜阳市| 涡阳县| 白沙| 庆云县| 阜康市| 法库县| 固安县| 绍兴市| 任丘市| 上蔡县| 西畴县| 大同市| 舒兰市| 开封县| 炎陵县| 德保县| 桑植县| 黎川县| 东城区| 阿拉善盟| 屏东县| 久治县| 板桥市| 湖南省| 麻城市| 同江市| 合江县|