Nginx配置限制IP访问

有时我们需要针对屏蔽某些恶意的IP访问我们的网站,或者限制仅仅某些白名单IP才能访问我们的网站。这时候我们就可以在Nginx中通过简单的配置来达到目的。

相关配置语句

(1)屏蔽单个ip访问

# 格式: deny ip;
deny 123.68.23.5;

(2)允许单个ip访问

# 格式: allow ip;
allow 123.68.25.6;

(3)屏蔽所有ip访问

deny all;

(4)允许所有ip访问

allow all;

(5)屏蔽ip段访问

# deny ip/mask
# 屏蔽172.12.62.0到172.45.62.255访问的命令 
deny 172.12.62.0/24;

(6)允许ip段访问

# allow ip/mask
# 屏蔽172.102.0.0到172.102.255.255访问的命令 
allow 172.102.0.0/16;

配置说明

(1)可新建一个配置文件,如blockip.conf。在其中编写相关的ip限制语句,然后在nginx.conf中加入如下配置:

# 配置ip限制策略
include blockip.conf; 

(2)Nginx会根据配置文件中的语句,从上至下依次判断。因此,写在前面的语句可能会屏蔽后续的语句

除部分ip白名单外,屏蔽所有ip的错误示例

deny all; # 该语句已经禁止所有ip的访问,后续的配置不会生效
allow 123.45.25.6;
allow 123.68.52.125;
allow 123.125.25.106;

正确示例

# 允许部分ip访问
allow 123.45.25.6;
allow 123.68.52.125;
allow 123.125.25.106;
 # 禁止其余ip访问
deny all; 

(3)屏蔽策略文件可以放在http, server, location, limit_except语句块中,可以根据需要合理的配置。

  • http: Nginx中所有服务起效
  • server: 指定的服务起效
  • location: 满足的location下起效
  • limit_except: 指定的http方法谓词起效
上一篇 Nacos快速部署
下一篇 Nginx配置http跳转https访问
目录
文章列表
1 微信官方轻量级键值对存储框架MMKV
微信官方轻量级键值对存储框架MMKV
2
Flutter Widget之Stack
Flutter Widget之Stack
3
PHP中让json_encode不自动转义斜杠“/”的方法
PHP中让json_encode不自动转义斜杠“/”的方法
4
Android 10(Api 29)新特性适配 - 禁止后台启动Activity
Android 10(Api 29)新特性适配 - 禁止后台启动Activity
5
Android Studio 获取SHA1
Android Studio 获取SHA1
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。