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

溫馨提示×

溫馨提示×

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

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

如何解決Nginx Buffer機制引發的下載故障

發布時間:2021-10-14 14:52:03 來源:億速云 閱讀:199 作者:iii 欄目:編程語言

本篇內容介紹了“如何解決Nginx Buffer機制引發的下載故障”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

Nginx Buffer 機制

在 Nginx 代理過程中,有兩種連接:

1.客戶端到 Nginx 的連接2.Nginx 到后端服務器的連接

這兩個連接的速度不一致,會對客戶端的體驗帶來不良的影響。Nginx 正是通過 Buffer 機制來緩解這個問題。

當啟用 buffer 時,Nginx 將會臨時存儲后端響應內容在內存或者磁盤上,然后慢慢把數據推送給客戶端;若關閉,則會按照響應內容的多少立刻同步到客戶端。

假設客戶端的速度足夠快,那么完全可以把 buffer 關掉,讓數據盡可能快速到達;如果客戶端很慢,就應該保持 buffer 開啟,這樣有利于 Nginx 和后端的連接復用(本質上是 HTTP 隊頭阻塞問題)。

大文件下載問題

Nginx Buffer 機制默認處于開啟狀態,其會根據 proxy_buffer_size 和 proxy_buffers 這兩個參數控制寫入內存的大小。如果響應大于這個 buffer 大小,Nginx 會繼續通過 proxy_max_temp_file_size 參數將響應其余部分寫入到磁盤臨時文件。

那么問題來了,如果響應還是很大,超過了臨時文件的限額怎么辦?

等! 此時,Nginx 的 socket 緩沖區也是出于滿載狀態。由于客戶端很慢,Nginx 并沒有觸發 read 后端操作。這里大概率會觸發后端服務器的 write 超時,進而由后端發起 close 操作。

這就是我遇到的問題:proxy_max_temp_file_size 默認為 1G,當客戶端的網絡比較慢時,臨時文件很快就被寫滿。這時候后端的響應還會繼續被接收到 socket 緩沖區,直到緩沖區被打滿。此時,Nginx 所在服務器通過滑動窗口 zero 0 告知后端服務器停止發送數據,直至觸發了后端的 write 超時。

如何解決Nginx Buffer機制引發的下載故障

而當客戶端的網絡比較快時,臨時文件并不會被寫滿,或者即使寫滿了也很快就會消費掉,不至于讓后端“阻塞”過長時間觸發超時。

如何解決?

1.調整 proxy_max_temp_file_size 大小?調大    讓臨時文件足夠可以緩沖整個響應?調小    讓整個鏈路上的數據流動起來,不要阻塞后端的 write 操作,進而觸發后端的超時2.關閉 Buffer     不推薦,會影響 Nginx 到后端的連接復用

“如何解決Nginx Buffer機制引發的下載故障”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

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

AI

治县。| 文山县| 芦溪县| 二手房| 建德市| 齐齐哈尔市| 绍兴县| 温州市| 皮山县| 金乡县| 阳春市| 当涂县| 乌什县| 大丰市| 新竹市| 呼玛县| 台江县| 共和县| 射阳县| 齐河县| 汨罗市| 白玉县| 石屏县| 新源县| 阿勒泰市| 灵宝市| 武城县| 莱西市| 土默特左旗| 荥阳市| 邢台市| 从江县| 巴南区| 瓦房店市| 班戈县| 淮阳县| 木里| 广饶县| 金塔县| 怀仁县| 孟津县|