Nginx禁止ip訪問或IP網段訪問方法


Nginx禁止ip訪問可以防止指定IP訪問我們的網站,本例子可以實現是防止單IP訪問或IP網段訪問了,非常的有用我們一起來看看吧。

常用的linux做法

iptables參考規則

 代碼如下 復制代碼

iptables -I INPUT -p tcp –dport 80 -m –mac-soruce$MAC -j DROP 基於mac地址的
iptables -I INPUT -p tcp –dport 80 -s $IP -j DROP 基於ip地址的

方法一,

首先建立下面的配置文件放在nginx的conf目錄下面,命名為blocksip.conf:
 
加入以下代碼:

 代碼如下 復制代碼

#屏蔽soso蜘蛛IP
deny 113.108.12.154;    #此為搜搜蜘蛛IP
deny 124.115.0.0/24;    #此為屏蔽搜搜蜘蛛124.115.0.1 ~ 124.115.0.255整個網段IP
deny 124.115.4.0/24;    #此為屏蔽搜搜蜘蛛124.115.4.1 ~ 124.115.4.255整個網段IP
屏蔽整個網段的IP時有可能會造成錯殺,不過幾率很低。


保存一下。

在nginx的配置文件nginx.conf中加入:include blocksip.conf;

重啟一下nginx的服務:/usr/local/nginx/sbin/nginx -s reload 就可以生效了。

方法二,利用nginx的ngx_http_access_module


ngx_http_access_module 模塊可以用來設置允許/禁止哪些ip或ip段訪問,可以設置一個文件內容類似下面的:

 代碼如下 復制代碼
deny IP;
deny subnet;
allow IP;
allow subnet;
# block all ips
deny    all;
# allow all ips
allow    all;

其中網段的寫法是這樣的:192.168.1.0/24這樣的形式。
然后編輯nginx.conf,加入一行:
include blockips.conf;
這樣設置以后,該服務器上所有的網站都會按照這個設置來拒絕或允許訪問。如果想只針對某個網站,可以在具體的網站的配置中加入:

 代碼如下 復制代碼
location / {
allow   192.168.0.0/24;
deny    all;
}

這樣就只允許192.168.0.0網段的ip訪問,其他ip訪問會返回一個403錯誤。
還可以自定義一個403錯誤的頁面,可以在/usr/local/nginx/html下新建個error403.html文件,里面按照html的語法寫個文檔,寫上一些說明文字。
然后編輯nginx.conf,加入:

 代碼如下 復制代碼
error_page   403  /error403.html;
location = /error403.html {
root   html;
}


免責聲明!

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



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