Nginx禁止ip訪問或IP網段訪問方法
轉載:https://www.cnblogs.com/already/p/6244295.html
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 i 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; } |