溫馨提示×

溫馨提示×

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

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

nginx如何設置目錄白名單和ip白名單

發(fā)布時間:2022-05-21 11:48:46 來源:億速云 閱讀:2100 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容介紹了“nginx如何設置目錄白名單和ip白名單”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

1.設置目錄白名單:對指定請求路徑不設置限制,如對請求路徑為api目錄下的請求不做限制,則可寫為

server{
    location /app {
      proxy_pass http://192.168.1.111:8095/app;

      limit_conn conn 20;

      limit_rate 500k;

      limit_req zone=foo burst=5 nodelay; 
    }
    location /app/api {
      proxy_pass http://192.168.1.111:8095/app/api
    }
}
# 因nginx會優(yōu)先進行精準匹配,所以以上寫法即接觸了對api目錄下屬路徑的限制

2.設置ip白名單,需用到nginx geo 與 nginx map

在沒有人為刪除的情況下(--without-http_geo_module或--without-http_map_module),nginx默認加載了ngx-http-geo-module和ngx-http-map-module相關內(nèi)容;

ngx-http-geo-module可以用來創(chuàng)建變量,變量值依賴于客戶端 ip 地址;

ngx-http-map-module可以基于其他變量及變量值進行變量創(chuàng)建,其允許分類,或者映射多個變量到不同值并存儲在一個變量中;

nginx geo 格式說明
 
syntax ( 語法格式 ): geo [$address] $variable { ... }
default ( 默認 ): -
content ( 配置段位 ): http
nginx map 格式說明
syntax ( 語法格式 ): map string $variable { ... }
default ( 默認 ):-
content ( 配置段位 ): http
 
白名單配置示例
 
http{
   # ... 其他配置內(nèi)容
   #定義白名單ip列表變量
   geo $whiteiplist {
     default 1 ;
     127.0.0.1/32 0;
     64.223.160.0/19 0;
   }
   #使用map指令映射將白名單列表中客戶端請求ip為空串
   map $whiteiplist $limit{
     1 $binary_remote_addr ;
     0 "";
   }
   #配置請求限制內(nèi)容
   limit_conn_zone $limit zone=conn:10m;
   limit_req_zone $limit zone=allips:10m rate=20r/s;
   server{
     location /yourapplicationname {
       proxy_pass http://192.168.1.111:8095/app;
       limit_conn conn 50;
       limit_rate 500k;
       limit_req zone=allips burst=5 nodelay;
     }
   }
}
白名單配置可用于對合作客戶,搜索引擎等請求過濾限制
 
#(特殊情況處理)
 
#如果想僅限制指定的請求,如:只限制post請求,則:
http{
   # 其他請求..
   #請求地址map映射
   map $request_method $limit {
     default "";
     post $binary_remote_addr;
   }
   #限制定義
   limit_req_zone $limit zone=reqlimit:20m rate=10r/s;
   server{
     ... #與普通限制一致
   }
}
#在此基礎上,想進行指定方法的白名單限制處理,則:
http{
   #...
   #定義白名單列表
   map $whiteiplist $limitips{
     1 $binary_remote_addr;
     0 "";
   }
 
   #基于白名單列表,定義指定方法請求限制
   map $request_method $limit {
     default "";
     # post $binary_remote_addr;
     post $limitips;
   }
 
   #對請求進行引用
   limit_req_zone $limit zone=reqlimit:20m rate=10r/s;
 
   #在server中進行引用
   server{
     #... 與普通限制相同
   }
}

“nginx如何設置目錄白名單和ip白名單”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細節(jié)

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

AI