在Nginx中配置黑名单或白名单功能,可以使用
deny和allow指令。,,``,location / {, deny 192.168.1.1; # 黑名单IP, allow 192.168.1.0/24; # 白名单IP段,},``为Nginx服务器配置黑名单或白名单功能的防火墙,可以通过多种方法实现,以下是两种常用的配置方法:

方法一:使用allow 和deny 指令
1、白名单设置:在Nginx配置文件中添加以下内容,允许指定的IP地址访问:
| 指令 | 示例 |
| location | / |
| allow | 123.13.123.12; |
| allow | 23.53.32.1/100; |
| deny | all; |
2、黑名单设置:在配置文件中添加以下内容,限制指定IP地址的访问:
| 指令 | 示例 |
| location | / |
| deny | 123.13.123.12; |
3、特定目录访问限制:在配置文件中添加以下内容,允许或限制特定目录下的访问:
| 指令 | 示例 |
| location | /tree/list |
| allow | 123.13.123.12; |
| deny | all; |
4、通过文件配置白名单:创建一个新的配置文件,例如whitelist.conf,并在Nginx主配置文件中使用include 指令引用它:
location / {
include /home/whitelist.conf;
deny all;
}
在whitelist.conf 文件中添加允许的IP地址:
白名单IP allow 10.1.1.10; allow 10.1.1.11;
方法二:使用ngx_http_geo_module 模块
1、基本配置:在Nginx配置文件中添加以下内容,使用geo 指令定义IP列表:
geo $ip_list {
default 0;
192.168.1.0/24 1;
10.1.0.0/16 1;
}
server {
listen 8081;
server_name 192.168.152.100;
location / {
root /var/www/test;
index index.html index.htm index.php;
if ($ip_list = 0) {
return 403;
}
}
}
2、通过文件配置IP列表:创建一个新的配置文件,例如ip_list.conf,并在Nginx主配置文件中使用include 指令引用它:

geo $ip_list {
default 0;
include /etc/nginx/ip_list.conf;
}
server {
listen 8081;
server_name 192.168.152.100;
location / {
root /var/www/test;
index index.html index.htm index.php;
if ($ip_list = 0) {
return 403;
}
}
}
在ip_list.conf 文件中添加允许或限制的IP地址:
白名单IP 192、168.152.1 1; 192、168.150.0/24 1;
相关问题与解答
问题1:如何确保Nginx的配置生效?
答:在修改完Nginx配置文件后,需要重新加载Nginx配置以使更改生效,可以使用以下命令:
sudo nginx -s reload
问题2:如何查看Nginx的错误日志以排查配置问题?
答:Nginx的错误日志通常位于/var/log/nginx/error.log,可以使用以下命令查看日志:
tail -f /var/log/nginx/error.log
通过以上方法,可以为Nginx服务器配置有效的黑白名单防火墙功能,增强服务器的安全性。
小伙伴们,上文介绍了“为Nginx服务器配置黑名单或白名单功能的防火墙”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。