nginx转发白名单配置如下:
location /files/upload/activity/thesis/29/ {
# IP白名单
allow 192.168.1.0/24;
allow 公网地址;
deny all;
# 使用 root
root /home/app;
# 请求 /files/upload/activity/thesis/29/document.zip # → /home/app/files/upload/activity/thesis/29/document.zip
}
遇到的问题是:内网测试没有问题,虽然添加了公网的白名单,但是测试依然不能访问
造成的原因:nginx前面存在安全防护工具,真实IP变量,造成添加公网白名单依然不能访问
解决方法:
在http中添加如下信息
#定义可信代理的IP地址或网络段,可以多次使用此指令来添加多个可信代理
set_real_ip_from 192.168.0.0/16;
#指定包含真实客户端IP的HTTP头字段,
real_ip_header X-Forwarded-For;
#启用或禁用递归搜索真实 IP,off(默认):使用 real_ip_header 指定的头中的最后一个IP,on:从右向左查找第一个不在 set_real_ip_from 中的 IP
real_ip_recursive on;
这些指令用于设置Nginx的真实客户端IP模块,告诉Nginx信任来自192.168.0.0/16网段的代理,并且使用X-Forwarded-For头来获取真实IP,同时启用递归搜索(从右至左查找第一个不信任的IP作为真实IP)
再配合上面location中的配置,完美解决白名单添加问题。











网友评论