Nginx禁止ip訪問可以防止指定IP訪問我們的網站,本例子可以實現是防止單IP訪問或IP網段訪問了,非常的有用我們一起來看看吧。
常用的linux做法
iptables參考規則
| 代碼如下 | 復制代碼 |
| iptables -I INPUT -p tcp –dport 80 -m –mac-soruce$MAC -j DROP 基於mac地址的 |
|
方法一,
首先建立下面的配置文件放在nginx的conf目錄下面,命名為blocksip.conf:
加入以下代碼:
| 代碼如下 | 復制代碼 |
| #屏蔽soso蜘蛛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; } |
|
