nginx屏蔽指定IP


首先找到nginx的配置文件,只要在相關配置文件中添加一些配置語句即可。

簡單使用配置

  1. 屏蔽單個IP地址,使用關鍵詞deny,例如:deny 10.11.12.13
  2. 允許單個IP地址,使用關鍵詞allow,例如:allow 10.11.12.14
  3. 屏蔽所有的IP地址:deny all
  4. 允許所有IP地址:allow all
  5. 屏蔽一定范圍內IP地址,使用IP地址加子網掩碼的組合。例如:
    • 屏蔽10.0.0.1~10.255.255.254這個范圍的ip地址:deny 10.0.0.0/8
    • 屏蔽10.11.0.1~10.11.255.254這個范圍的IP地址:deny 10.11.0.0/16
    • 屏蔽10.11.12.1~10.11.12.254這個范圍的IP地址:deny 10.11.12.0/24
  6. 允許一定范圍內的IP地址訪問,同上所示,關鍵詞換成allow

以上只是最基本的使用方法,那么問題來了,nginx做代理的時候,可以監聽多個地址或者指向不同的網站,那么該怎么只針對不同的網站做區分呢?

指定代理網站添加屏蔽策略

針對上面的問題,我們只要把屏蔽IP的語句放在不同的位置就好了。在nginx的配置文件中,不同的語句塊所產生的影響效果也是不一樣的。

語句塊 效果
http{} 對nginx的所有服務生效,所有代理網站都會受到影響
server{} 指定的server服務,只對配置的代理網站起作用
location 指定的訪問地址
limit_except 指定的http方法謂詞

如果現在有幾百個不同的IP地址,它們又分布在不同的網段,這時候寫在配置文件中,每個IP寫一行,那這個配置文件豈不是要寫的無比的長,可讀性就太差了,修改起來也不方便。這時候我們該怎么辦呢?

寫成單獨的屏蔽策略配置文件

新建一個配置文件,例如blockip.conf,把所有的屏蔽ip策略可以寫在這個文件中,最后我們只要在nginx的配置文件nginx.conf中引入即可,還可以在不同的語句塊中引入,效果同上表所示。

屏蔽策略配置文件中可以寫允許的IP地址,也可以寫屏蔽的IP地址。但是有一點,當你只放開幾個IP地址,然后屏蔽剩余所有IP地址時,一定要先寫放行的ip地址。

# 放行部分ip訪問
allow 10.11.12.13;
allow 10.11.12.14;
allow 10.11.12.15;
 # 禁止其余ip訪問
deny all; 

示例配置:

location /commonService/ {
	include blockip.conf;
	proxy_pass http://127.0.0.1:8082/;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM