nginx 前置设置 WAF 后 ip 限制出现的问题解决

添加 WAF 后 NGINX 的 IP 访问限制可能不生效,通常是因为 WAF 修改了请求头或代理了请求,导致 NGINX 无法正确识别客户端真实 IP。以下是排查和解决的思路:

1. 确认是否启用了代理模式

如果 WAF 运行在代理模式下,客户端请求经过 WAF,再转发到 NGINX,这样 remote_addr 可能变为 WAF 的 IP 地址。

解决方案:
在 NGINX 配置中添加 real_ip_header 和信任的 WAF IP 段,例如:

http {
    set_real_ip_from 192.168.0.0/16;  # WAF IP 地址段
    set_real_ip_from 10.0.0.0/8;
    set_real_ip_from 127.0.0.1;
    real_ip_header X-Forwarded-For;
    real_ip_recursive on;
}

2. 检查 WAF 是否传递了正确的请求头

确认 WAF 是否将 X-Forwarded-ForX-Real-IP 正确传递到后端 NGINX。

3. 验证 IP 限制规则

确认 NGINX 的 IP 限制配置是否仍然有效。例如:

location / {
    deny 192.168.1.100;
    allow 10.0.0.0/8;
    deny all;
}

4. 使用日志调试

开启 NGINX 日志,查看 remote_addrX-Forwarded-For 是否符合预期。

log_format custom_format '$remote_addr - $http_x_forwarded_for';
access_log /var/log/nginx/access.log custom_format;

5. 检查模块冲突

某些 WAF 插件可能会影响 NGINX 的 IP 过滤模块,例如 Lua WAF。可以尝试调整 WAF 插件的执行顺序。

如果需要更详细的帮助,请提供 NGINX 和 WAF 的配置,我可以协助优化配置。

posted @ 2025-02-07 09:21  whmmm  阅读(147)  评论(0)    收藏  举报
//增加一段JS脚本,为目录生成使用