本文主要是介绍网站由于恶意访问量很大导致无法正常访问怎么办,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
今天,突然发现我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状态码,世界都清静了
这篇关于网站由于恶意访问量很大导致无法正常访问怎么办的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!