阿里云SLB场景使用Nginx封用户真实IP
Nginx
场景: 前端SLB--->nginx---->proxy
1.首先需要配置SLB(阿里云负载均衡)让slb记录用户真实IP功能
此处勾选即可
2.tomcat开启X-Forwarded-For日志功能
开启tomcat的X-Forwarded-For,在tomcat/conf/server.xml
中,修改AccessLogValve日志纪录功能为如下内容:
className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%{X-Forwarded-For}i %h %l %u %t %r %s %b" />
提示:修改完重启生效!!
下午被攻击的日志:
3.Nginx配置(安装不解释了)
在Server标签下添加如下几行
set $allow true; if ($http_x_forwarded_for ~ "106.121.*.*|106.121.71.120|106.121.77.28|106.121.74.130|218.109.235.254"){ set $allow false; } if ($allow = false){ return 404; } #提示:IP添加在上面!
小结: 因为无法禁止用户进行访问,我们设置404可以让IP无法进行访问数据库。不然数据库会被查询语句进行刷爆
这个貌似不是攻击,而是阿里的SLB负载均衡检测,我上次也是看了一下access.log发现最多的ip访问有3万多次,后来询问阿里云才知道是阿里云的SLB检测ip
不是的,这些IP都是别的ecs,如果是正常的slb探测ip应该是100.109.238.* 这种IP进行探测的
?