网站由于恶意访问量很大导致无法正常访问怎么办

今天,突然发现我N年前的一个网站(企业展示型网站)突然打不开了,加载条一直在转,看这架势像是压力太大,导致响应速度跟不上。

这是一个小站,平时没多少人访问的,感觉肯定是出了什么状况,可能是访问量太大了?先确认一下,打开nginx日志目录(具体目录可在虚拟主机配置文件查看),用tail -f xxx.log就可以实时查看访问记录,如果文件刷新的速度很慢,即说明即时的访问量不大,但如果文件内容刷新的很快,就要注意了,网站当前可能正在受到攻击。

操作步骤:

打开虚拟主机配置文件查看访问日志路径
在这里插入图片描述复制出来,然后用 tail -f [日志路径]来查看,例如 taif -f /data/log/XXX.log,然后会打开一个会实时刷新该网站访问记录的页面,如下图:
在这里插入图片描述
图中有下划线的就是访问来源的IP,红色圈中的就是状态码,如果发现某个IP发了大量的请求而且来源不明,或者明显在用随机的参数或路径试探式的访问接口或页面,很有可能是攻击的来源,把有异常的IP复制到记事本,然后把相应的IP加到黑名单中,这样在web服务器接收到请求的时候就直接返回了403(禁止访问)的状态码,不会给数据库带来什么压力。

那怎么将IP加入到nginx的黑名单呢,可以在/opt/nginx/conf目录下新建一个文件,通常按国际惯例叫ip.black即可,内容是 deny X.X.X.X; 这样的格式,然后在nginx.conf文件中的前面加入一行 include ip.black; 就可以了,内容如下图所示:
在这里插入图片描述
在这里插入图片描述
改完之后记着先用 /opt/nginx/sbin/nginx -t先检查一下配置有没问题,如果一切正常,执行reload 命令就可以了。

正常情况下,再打开日志的时候会发现这个IP所有的请求响应的状态码都由原来的200变成403了,那就是配置起作用了,当这个ip来访问网站,到nginx层就直接把这个请求拒绝了,不会到执行逻辑代码的层面去,这些垃圾请求也就不会再给你的服务器或数据库带来什么压力,正常的网站访问请求马上可以正常响应了。
在这里插入图片描述
效果就是这样的,相应IP的请求直接返回了403状态码,世界都清静了

猜你喜欢

转载自blog.csdn.net/one_and_only4711/article/details/121128546
今日推荐