国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Nginx http資源請求限制(三種方法)

mayaohua / 1326人閱讀

摘要:將延遲處理此類請求,直到存儲區共享存儲區已滿。因此,如果目標是阻止下載速度大于指定值,則連接數也應該受到限制。以下示例顯示了用于限制連接數和帶寬的組合配置。

原文鏈接:何曉東 博客

前置條件:nginx 需要有 ngx_http_limit_conn_modulengx_http_limit_req_module 模塊,可以使用命令 2>&1 nginx -V | tr " "  "
"|grep limit 檢查有沒有相應模塊,如果沒有請重新編譯安裝這兩個模塊。

測試版本為:nginx版本為1.15+

限制鏈接數

1.使用 limit_conn_zone 指令定義密鑰并設置共享內存區域的參數(工作進程將使用此區域來共享密鑰值的計數器)。第一個參數指定作為鍵計算的表達式。第二個參數 zone 指定區域的名稱及其大?。?/p>

limit_conn_zone $binary_remote_addr zone=addr:10m;

2.在 location {}, server {} 或者 http {} 上下文中使用 limit_conn 指令來應用限制,第一個參數為上面設定的共享內存區域名稱,第二個參數為每個key被允許的鏈接數:

location /download/ {
     limit_conn addr 1;
}

使用 $binary_remote_addr 變量作為參數的時候,是基于 IP 地址的限制,同樣可以使用 $server_name 變量進行給定服務器連接數的限制:

http {
    limit_conn_zone $server_name zone=servers:10m;

    server {
        limit_conn servers 1000;
    }
}
限制請求速率

速率限制可用于防止 DDoS,CC 攻擊,或防止上游服務器同時被太多請求淹沒。該方法基于 leaky bucket 漏桶算法,請求以各種速率到達桶并以固定速率離開桶。在使用速率限制之前,您需要配置 "漏桶" 的全局參數:

key - 用于區分一個客戶端與另一個客戶端的參數,通常是變量

shared memory zone - 保留這些密鑰狀態的區域的名稱和大?。?"漏桶")

rate - 每秒請求數(r/s)或每分鐘請求數(r/m)("漏桶排空")中指定的請求速率限制。每分鐘請求數用于指定小于每秒一個請求的速率。

這些參數使用 limit_req_zone 指令設置。該指令在 http {} 級別上定義 - 這種方法允許應用不同的區域并請求溢出參數到不同的上下文:

http {
    #...

    limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
}

使用此配置,將創建大小為 10m 字節,名稱為 one 的共享內存區域。該區域保存使用 $binary_remote_addr 變量設置的客戶端 IP 地址的狀態。請注意,$remote_addr 還包含客戶端的 IP 地址,而 $binary_remote_addr 保留更短的 IP 地址的二進制表示。

可以使用以下數據計算共享內存區域的最佳大?。?b>$binary_remote_addr IPv4 地址的值大小為 4 個字節,64 位平臺上的存儲狀態占用 128 個字節。因此,大約 16000 個 IP 地址的狀態信息占用該區域的 1m 字節。

如果在 NGINX 需要添加新條目時存儲空間耗盡,則會刪除最舊的條目。如果釋放的空間仍然不足以容納新記錄,NGINX 將返回 503 Service Unavailable 狀態代碼,狀態碼可以使用 limit_req_status 指令重新定義。

一旦該區域被設置,你可以使用 NGINX 配置中的任何地方使用 limit_req 指令限制請求速率,尤其是 server {}, location {}http {} 上下文:

http {
    #...

    limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;

    server {
        #...

        location /search/ {
            limit_req zone=one;
        }
    }
}

使用如上配置,nginx 在 /search/ 路由下將每秒處理不超過 1 個請求,延遲處理這些請求的方式是總速率不大于設定的速率。NGINX 將延遲處理此類請求,直到 "存儲區"(共享存儲區 one)已滿。對于到達完整存儲桶的請求,NGINX 將響應 503 Service Unavailable 錯誤(當 limit_req_status 未自定義設定狀態碼時)。

限制寬帶

要限制每個連接的帶寬,請使用以下 limit_rate 指令:

location /download/ {
    limit_rate 50k;
}

通過此設置,客戶端將能夠通過單個連接以最高 50k/秒 的速度下載內容。但是,客戶端可以打開多個連接跳過此限制。因此,如果目標是阻止下載速度大于指定值,則連接數也應該受到限制。例如,每個 IP 地址一個連接(如果使用上面指定的共享內存區域):

location /download/ {
    limit_conn addr 1;
    limit_rate 50k;
}

要僅在客戶端下載一定數量的數據后施加限制,請使用該 limit_rate_after 指令。允許客戶端快速下載一定數量的數據(例如,文件頭 - 電影索引)并限制下載其余數據的速率(使用戶觀看電影而不是下載)可能是合理的。

limit_rate_after 500k;
limit_rate 20k;

以下示例顯示了用于限制連接數和帶寬的組合配置。允許的最大連接數設置為每個客戶端地址 5 個連接,這適用于大多數常見情況,因為現代瀏覽器通常一次最多打開 3 個連接。同時,提供下載的位置只允許一個連接:

http {
    limit_conn_zone $binary_remote_address zone=addr:10m

    server {
        root /www/data;
        limit_conn addr 5;

        location / {
        }

        location /download/ {
            limit_conn addr 1;
            limit_rate_after 1m;
            limit_rate 50k;
        }
    }
}

內容翻譯自 nginx 請求限制部分文檔,稍微調整了一點語義。

大佬們,買點更多 知識 嗎?

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/40439.html

相關文章

  • Nginx http資源請求限制三種方法

    摘要:將延遲處理此類請求,直到存儲區共享存儲區已滿。因此,如果目標是阻止下載速度大于指定值,則連接數也應該受到限制。以下示例顯示了用于限制連接數和帶寬的組合配置。 原文鏈接:何曉東 博客 前置條件:nginx 需要有 ngx_http_limit_conn_module 和 ngx_http_limit_req_module 模塊,可以使用命令 2>&1 nginx -V | tr ...

    stormzhang 評論0 收藏0
  • php偽造Referer請求反盜鏈資源

    摘要:反盜鏈分類我們了解了盜鏈對源站的危害后,自然要通過一些手段來阻止這種行為維護自己的利益。參考文章百科盜鏈防盜鏈偽造防盜鏈 有些產品為了防止自己的產品被盜鏈訪問,會采用反盜鏈措施,如封閉型生態的音樂網站和視頻網站,他們已經為了版權付費,自然不希望你免費使用他們的資源。但因為很多人專門研究盜鏈,因此我們也需要了解下盜鏈、反盜鏈和逃避反盜鏈的原理。 盜鏈 引用百度百科對盜鏈的定義: 盜鏈是指...

    chenatu 評論0 收藏0
  • php偽造Referer請求反盜鏈資源

    摘要:反盜鏈分類我們了解了盜鏈對源站的危害后,自然要通過一些手段來阻止這種行為維護自己的利益。參考文章百科盜鏈防盜鏈偽造防盜鏈 有些產品為了防止自己的產品被盜鏈訪問,會采用反盜鏈措施,如封閉型生態的音樂網站和視頻網站,他們已經為了版權付費,自然不希望你免費使用他們的資源。但因為很多人專門研究盜鏈,因此我們也需要了解下盜鏈、反盜鏈和逃避反盜鏈的原理。 盜鏈 引用百度百科對盜鏈的定義: 盜鏈是指...

    Drinkey 評論0 收藏0
  • 跨域問題匯總

    摘要:因為瀏覽器的同源策略,前端開發會遇到各種跨域問題。前言在總結各種跨域問題之前,我們先來了解一下瀏覽器的同源策略。所以只能解決一級域名相同二級域名不同的跨域問題。 跨域問題的場景和解決方案多種多樣,只要是做前端開發,總會遇到。而且面試時也是必問的問題。所以自己學習總結記錄一下。 因為瀏覽器的同源策略,前端開發會遇到各種跨域問題。本篇文章總結了遇到跨域問題的不同的場景以及對應的解決方案。 ...

    MkkHou 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<