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

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 服務器 > 
  • Nginx限制某個IP同一時間段的訪問次數和請求數示例代碼

Nginx限制某個IP同一時間段的訪問次數和請求數示例代碼

發布時間:2020-10-21 22:14:58 來源:腳本之家 閱讀:694 作者:至尊寶等待紫霞的日子 欄目:服務器

nginx可以通過ngx_http_limit_conn_modulengx_http_limit_req_module配置來限制ip在同一時間段的訪問次數.

ngx_http_limit_conn_module:該模塊用于限制每個定義的密鑰的連接數,特別是單個IP​​地址的連接數.使用limit_conn_zone和limit_conn指令.

ngx_http_limit_req_module:用于限制每一個定義的密鑰的請求的處理速率,特別是從一個單一的IP地址的請求的處理速率。使用“泄漏桶”方法進行限制.指令:limit_req_zone和limit_req.

ngx_http_limit_conn_module:限制單個IP的連接數示例:

http { 
  limit_conn_zone $binary_remote_addr zone=addr:10m; 
   #定義一個名為addr的limit_req_zone用來存儲session,大小是10M內存,
  #以$binary_remote_addr 為key,
  #nginx 1.18以后用limit_conn_zone替換了limit_conn,
  #且只能放在http{}代碼段.
  ... 
  server { 
    ... 
    location /download/ { 
      limit_conn addr 1;   #連接數限制
      #設置給定鍵值的共享內存區域和允許的最大連接數。超出此限制時,服務器將返回503(服務臨時不可用)錯誤.
       #如果區域存儲空間不足,服務器將返回503(服務臨時不可用)錯誤
    }

可能有幾個limit_conn指令,以下配置將限制每個客戶端IP與服務器的連接數,同時限制與虛擬服務器的總連接數:

http { 
  limit_conn_zone $binary_remote_addr zone=perip:10m; 
  limit_conn_zone $server_name zone=perserver:10m 
  ... 
  server { 
    ... 
    limit_conn perip 10;      #單個客戶端ip與服務器的連接數.
    limit_conn perserver 100;  #限制與服務器的總連接數
    }

參考文檔:http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html

 ngx_http_limit_req_module:限制某一時間內,單一IP的請求數

示例:

http {
  limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
  ...
  #定義一個名為one的limit_req_zone用來存儲session,大小是10M內存,  
  #以$binary_remote_addr 為key,限制平均每秒的請求為1個,
  #1M能存儲16000個狀態,rete的值必須為整數,
  
  server {
    ...
    location /search/ {
      limit_req zone=one burst=5;
        
        #限制每ip每秒不超過1個請求,漏桶數burst為5,也就是隊列.
        #nodelay,如果不設置該選項,嚴格使用平均速率限制請求數,超過的請求被延時處理.
        #舉個栗子:
        #設置rate=20r/s每秒請求數為20個,漏桶數burst為5個,
        #brust的意思就是,如果第1秒、2,3,4秒請求為19個,第5秒的請求為25個是被允許的,可以理解為20+5
        #但是如果你第1秒就25個請求,第2秒超過20的請求返回503錯誤.
        #如果區域存儲空間不足,服務器將返回503(服務臨時不可用)錯誤 
        #速率在每秒請求中指定(r/s)。如果需要每秒少于一個請求的速率,則以每分鐘的請求(r/m)指定。 
        
    }

還可以限制來自單個IP地址的請求的處理速率,同時限制虛擬服務器的請求處理速率:

http {
  limit_req_zone $binary_remote_addr zone=perip:10m rate=1r/s;
  limit_req_zone $server_name zone=perserver:10m rate=10r/s;
  ...
  server {
    ...
      limit_req zone=perip burst=5 nodelay;  #漏桶數為5個.也就是隊列數.nodelay:不啟用延遲.
      limit_req zone=perserver burst=10;    #限制nginx的處理速率為每秒10個
    }  

總結

以上所述是小編給大家介紹的Nginx限制某個IP同一時間段的訪問次數和請求數示例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!

向AI問一下細節

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

AI

广东省| 永顺县| 隆德县| 抚远县| 大埔县| 中牟县| 育儿| 苗栗市| 泸州市| 那坡县| 蒙阴县| 社会| 临高县| 万年县| 广河县| 郓城县| 镇巴县| 太保市| 三明市| 安义县| 丹棱县| 龙山县| 菏泽市| 武宁县| 灵璧县| 鹤山市| 浦江县| 通州市| 崇义县| 海淀区| 和硕县| 永川市| 东海县| 武威市| 当涂县| 延寿县| 西吉县| 遂溪县| 潞西市| 太原市| 保靖县|