今天,突然发现我N年前的一个网站(企业展示型网站)突然打不开了,加载条一直在转,看这架势像是压力太大,导致响应速度跟不上。
这是一个小站,平时没多少人访问的,感觉肯定是出了什么状况,可能是访问量太大了?先确认一下,打开nginx日志目录(具体目录可在虚拟主机配置文件查看),用tail -f xxx.log就可以实时查看访问记录,如果文件刷新的速度很慢,即说明即时的访问量不大,但如果文件内容刷新的很快,就要注意了,网站当前正在受到攻击。
因为日志中还会打印出请求的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的请求已经不会给你的数据库带来压力。



