阿里云waf防火墙导致nginx网站访问日志不显示真实ip问题配置
- 2024-01-25 09:37:00
- 1147533288 原创
- 102
场景描述:
网站放在阿里云ecs服务器上,php的网站,通过nginx对外80端口提供服务。
日常访问网站域名时,域名映射到阿里云waf防火墙地址,由waf过滤请求后再访问源站,源站不直接暴露到互联网公网。

问题情况:
tail -f access.log查看nginx访问日志时,发现其访问ip均是内网ip,都是waf ip地址池里的,没有任何外网ip记录情况。
处理办法:
1. nginx配置文件http部分,增加site_log(可自定义名称)对应的日志格式。
http{
log_format site_log '$http_x_forwarded_for [$remote_user] [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" ';
#其他配置
}
2. nginx配置文件server部分,修改原有日志部分,使其日志按指定格式输出。
server{
access_log /www/wwwlogs/www.jswsrc.com.cn.log site_log;
#其他配置
}
3. server部分,请求处理前,增加真实ip部分X-Forwarded-For
set_real_ip_from 101.200.106.0/24;
real_ip_header X-Forwarded-For;
location / {
# 指定IP黑名单,拒绝访问
deny 180.98.18.147;
# 允许所有IP访问
allow all;
}
4. 重启,nginx -s reload。查看日志验证。
参考资料:
获取客户端真实IP
https://help.aliyun.com/document_detail/42205.html
文章分类
联系我
| 联系人: | meepo |
|---|---|
| 电话: | ***** |
| Email: | 1147533288@qq.com |
| QQ: | 1147533288 |