nginx設(shè)置目錄白名單、ip白名單的實(shí)現(xiàn)方法
1.設(shè)置目錄白名單:對指定請求路徑不設(shè)置限制,如對請求路徑為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會(huì)優(yōu)先進(jìn)行精準(zhǔn)匹配,所以以上寫法即接觸了對api目錄下屬路徑的限制
2.設(shè)置ip白名單,需用到nginx geo 與 nginx map
在沒有人為刪除的情況下(--without-http_geo_module或--without-http_map_module),nginx默認(rèn)加載了ngx-http-geo-module和ngx-http-map-module相關(guān)內(nèi)容;
ngx-http-geo-module可以用來創(chuàng)建變量,變量值依賴于客戶端 ip 地址;
ngx-http-map-module可以基于其他變量及變量值進(jìn)行變量創(chuàng)建,其允許分類,或者映射多個(gè)變量到不同值并存儲(chǔ)在一個(gè)變量中;
Nginx geo 格式說明 Syntax ( 語法格式 ): geo [$address] $variable { ... } Default ( 默認(rèn) ): - Content ( 配置段位 ): http Nginx map 格式說明 Syntax ( 語法格式 ): map String $variable { ... } Default ( 默認(rèn) ):- 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{ ... #與普通限制一致 } } #在此基礎(chǔ)上,想進(jìn)行指定方法的白名單限制處理,則: http{ #... #定義白名單列表 map $whiteiplist $limitips{ 1 $binary_remote_addr; 0 ""; } #基于白名單列表,定義指定方法請求限制 map $request_method $limit { default ""; # POST $binary_remote_addr; POST $limitips; } #對請求進(jìn)行引用 limit_req_zone $limit zone=reqlimit:20m rate=10r/s; #在server中進(jìn)行引用 server{ #... 與普通限制相同 } }
以上這篇nginx設(shè)置目錄白名單、ip白名單的實(shí)現(xiàn)方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
nginx內(nèi)部訪問特性如何實(shí)現(xiàn)靜態(tài)資源授權(quán)訪問
這篇文章主要介紹了nginx內(nèi)部訪問特性如何實(shí)現(xiàn)靜態(tài)資源授權(quán)訪問方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06Nginx生產(chǎn)環(huán)境平滑升級的實(shí)現(xiàn)
本文主要介紹了Nginx生產(chǎn)環(huán)境平滑升級的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03nginx實(shí)現(xiàn)動(dòng)靜分離的方法示例
Nginx的靜態(tài)處理能力很強(qiáng),但是動(dòng)態(tài)處理能力不足,因此,在企業(yè)中常用動(dòng)靜分離技術(shù),本文就詳細(xì)的介紹一下如何使用,感興趣的可以了解一下2021-11-11深入探究Nginx體系化之虛擬主機(jī)分類及配置實(shí)現(xiàn)
Nginx,這款備受推崇的高性能 Web 服務(wù)器,以其強(qiáng)大的性能和靈活的配置而廣受歡迎,在實(shí)際應(yīng)用中,虛擬主機(jī)是一項(xiàng)重要的功能,允許我們在單個(gè)服務(wù)器上托管多個(gè)網(wǎng)站,本文將深入探討 Nginx 虛擬主機(jī)的分類和配置實(shí)現(xiàn),幫助您構(gòu)建一個(gè)高效多站點(diǎn)托管平臺(tái)2023-08-08Nginx與安全相關(guān)的幾個(gè)配置小結(jié)
Nginx提供了一系列的安全相關(guān)參數(shù),可以幫助加固網(wǎng)站安全性,本文主要介紹了Nginx與安全相關(guān)的幾個(gè)配置小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02聊聊Django+uwsgi+nginx服務(wù)器部署問題
這篇文章主要介紹了Django+uwsgi+nginx服務(wù)器部署的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03