宝塔面板Nginx
编译了WAF
防火墙,如果使用CDN
后会发现WAF
获取到的访客IP
并不是真实的访客IP
而是CDN
节点的IP
地址,因此如果你开启了WAF
,并且CDN
有频繁的回源时,可能会造成CDN
IP
被WAF
给误判将其IP
列入拉黑,而真正攻击你的IP
却不会被封禁,因此需要修改一下WAF
配置文件:宝塔面板下WAF
配置文件在/www/server/nginx/waf/init.lua
。
找到如下代码:
function getClientIp() IP = ngx.var.remote_addr if IP == nil then IP = "unknown" end return IP end
将其改为:
function getClientIp() IP = ngx.req.get_headers()["X-Real-IP"] if IP == nil then IP = ngx.req.get_headers()["x_forwarded_for"] end if IP == nil then IP = ngx.var.remote_addr end return IP end
重启宝塔生效!
对于非宝塔面板WAF
,可能没有这个function
将文件如下代码进行添加即可。
local headers=ngx.req.get_headers() local ip=headers["X-REAL-IP"] or headers["X_FORWARDED_FOR"] or ngx.var.remote_addr or "0.0.0.0"
本文由 podipod软库网 作者:DevOps 发表,转载请注明来源!