一、Nginx限制IP訪問特定域名
server {
listen 80;
server_name example.com;
deny all;
allow 192.168.1.0/24;
allow 10.0.0.0/8;
}
以上配置中,我們通過deny all來禁止所有IP訪問example.com,然後通過allow指令來允許指定IP段的訪問。
實際上,我們還可以使用更加靈活的模式匹配規則,比如使用通配符,以支持更多的IP模式匹配。例如:
server {
listen 80;
server_name example.com;
deny all;
allow 192.168.1.0/24;
allow 10.0.0.0/8;
allow 172.16.0.0/12;
allow 192.168.0.*;
}
二、Nginx限制IP段訪問
Nginx還可以支持基於IP段的訪問限制。我們可以通過設置雙尖括號來指定IP範圍。例如:
location / {
allow 192.168.0.0/16;
allow 10.0.0.0/8;
deny all;
}
三、Nginx限制IP訪問頻率
在實際應用中,我們常常需要通過控制IP訪問頻率來避免過多的請求對服務器造成負載壓力。Nginx提供了基於limit_req模塊的請求頻率控制功能,我們可以通過以下示例來限制IP每秒最多請求5次:
http {
limit_req_zone $binary_remote_addr zone=one:10m rate=5r/s;
server {
location /api/ {
limit_req zone=one burst=10 nodelay;
}
}
}
我們通過定義limit_req_zone來設置IP訪問頻率限制規則,包括每秒的請求次數和對應的存儲區域。然後通過location指定匹配規則,並使用limit_req指令來啟用請求頻率控制。
四、Nginx配置限制IP訪問
Nginx提供了很多限制IP訪問的方法,例如使用access模塊或者limit_conn模塊。我們可以通過以下示例來實現對IP的訪問限制:
http {
#使用access模塊實現IP訪問限制
geo $deny_ips {
default 0;
192.168.0.0/16 1;
10.0.0.0/8 1;
}
server {
location / {
if ($deny_ips){
return 403;
}
}
}
#使用limit_conn模塊實現IP並發請求量限制
limit_conn_zone $binary_remote_addr zone=addr:10m;
server {
location / {
limit_conn addr 10;
}
}
}
五、Linux限制IP訪問
Linux系統也自帶了iptables工具來實現對IP的訪問限制,同時Nginx也可以與iptables進行結合使用,例如以下腳本:
#允許本地IP段 sudo iptables -A INPUT -p tcp -s 127.0.0.1/32 --dport 80 -j ACCEPT #允許指定IP段 sudo iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 80 -j ACCEPT #禁止其他IP訪問 sudo iptables -A INPUT -p tcp --dport 80 -j DROP
六、Nginx限制指定IP訪問
有時候我們需要臨時關閉特定IP的訪問,我們可以使用如下配置:
server {
listen 80;
server_name example.com;
if ($remote_addr != 192.168.1.10){
return 503;
}
}
七、Nginx限制同一IP訪問頻率
除了限制IP訪問頻率之外,我們還可以實現對同一IP的不同請求頻率進行限制。我們可以使用limit_req和limit_conn模塊的組合來實現以上限制,例如:
http{
limit_conn_zone $binary_remote_addr zone=addr:10m;
limit_req_zone $binary_remote_addr zone=req:10m rate=5r/s;
server {
location /api/ {
limit_req zone=req;
limit_conn addr 5;
}
}
}
八、Nginx限制IP並發量
除了限制請求頻率之外,我們還可以對同一IP的並發請求量進行限制。我們可以使用limit_conn模塊來實現IP並發請求量控制,例如:
http {
limit_conn_zone $binary_remote_addr zone=addr:10m;
server {
location /api/ {
limit_conn addr 5;
}
}
}
九、Nginx配置IP端口訪問
我們可以通過以下示例來配置IP和端口的匹配規則:
server {
listen 80;
server_name example.com;
allow 192.168.0.1:60000;
deny all;
}
十、Nginx單個站點限制IP
我們可以通過以下示例來實現對單個站點的IP訪問限制:
server {
listen 80;
server_name example.com;
allow 192.168.0.0/16;
deny all;
}
在實際應用中,我們可以根據需要自由選擇不同的IP訪問限制方法,以滿足複雜的應用需求。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/182409.html
微信掃一掃
支付寶掃一掃