前言
我們經(jīng)常會(huì)遇到這種情況,服務(wù)器流量異常,負(fù)載過大等等。對(duì)于大流量惡意的攻擊訪問,會(huì)帶來帶寬的浪費(fèi),服務(wù)器壓力,影響業(yè)務(wù),往往考慮對(duì)同一個(gè)ip的連接數(shù),并發(fā)數(shù)進(jìn)行限制。nginx 內(nèi)置模塊限速怎么使用就不多說了,今天來說說連接數(shù)和單個(gè)連接數(shù)限速的事。話不多說了,來一起看看詳細(xì)的介紹吧。
場景:
A公司有100人,A公司只有一個(gè)公網(wǎng)IP,假設(shè)A公司可能有100個(gè)人同時(shí)在下載你的網(wǎng)站文件。
但是,你的連接數(shù)限制配置為:
limit_conn_zone $binary_remote_addr zone=perip:1m;server { --- limit_conn perip 1; limit_rate 1024k; ---}
允許單個(gè)連接數(shù),單個(gè)連接數(shù)最大帶寬為1M。
這樣就會(huì)有99個(gè)人的請(qǐng)求狀態(tài)為 503, 其他人如果想下載就必須人工等待(nginx不會(huì)通知用戶說A用戶下載完了,該你B用戶下載了)。這樣造成的用戶體驗(yàn)極差。但是優(yōu)點(diǎn)也很明顯,帶寬很快就會(huì)降下來。
可能有人就要問了,你限制成很低的連接數(shù)是想搞事情?NO,絕對(duì)不是。前面的100個(gè)人同時(shí)下載網(wǎng)站資源的情況有多大呢?沒做過統(tǒng)計(jì),但是可能性極小。并且前端頁面和下載資源不共用一個(gè)域名,所以不會(huì)影響到前端頁面的訪問。
那都是誰在大量使用連接數(shù)呢?分兩類:
小明快樂的在看電視,瞥了左邊頻幕一眼,握草,帶寬又滿了,來吧,限速吧,
limit_conn_zone $binary_remote_addr zone=perip:1m;server { --- limit_rate 1024k; ---}
小明做了如上限速,OK,我告訴你們誰被限速了,當(dāng)然是瀏覽器下載用戶,360瀏覽器的下載器都不一定能限制,好的,來算算速度吧。
瀏覽器: 2014K
下載器: 1024 * 15(最大連接數(shù)) * VIP
采集器: 1024 * 連接數(shù)
所以我們得到如下結(jié)論:
帶寬有限,同個(gè)IP同時(shí)下載的情況很小的,或者說是可以預(yù)知的業(yè)務(wù),盡量將連接數(shù)限制的小一點(diǎn)。
反之,別限制了。就降低單個(gè)連接數(shù)帶寬吧!要知道大家誰沒事會(huì)用瀏覽器自帶下載器下載呢?
注:本文只探討nginx限速模塊在不同業(yè)務(wù)下的限速
彩蛋:偶爾發(fā)現(xiàn),將連接數(shù)限制為1迅雷不能高速下載了。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)VEVB武林網(wǎng)的支持。
新聞熱點(diǎn)
疑難解答
圖片精選