我们的网站是地方招聘求职网站(地级市),购买的某商业人才网程序(PHP+My SQL),2021年底升级到新的版本,采用宝塔(Linux面板)部署,2021年1月以来,网站服务器经常出现CPU占满,网站无法访问的情况。
商业人才网程序技术支持人员说,这是因为数据采集造成的。
百度统计显示,网站访问量较小,多数情况下,每天只有20个左右甚至几个IP访问。但通过宝塔查看网站日志,数据采集较频繁,一秒钟内最多时有20多个IP在采集数据。使用了Nginx免费防火墙,防CC、SQL注入、禁止国外访问均已经打开,已经100多组IP拉入防火墙黑名单,但还是隔一段时间有出现新的数据采集IP,并且数量较多,导致隔一段时间就出现服务器CPU占用80%到100%,网站无法访问的情况。
昨天再次出现服务器出现CPU占满,网站无法访问的情况,阿里云服务监控显示,ECS同时连接数最高达到1000次,经常有100多次,就我们网站正常的访问量,显然不正常,之前请阿里云客服协助排查过,阿里云客服回复tcp关闭和等待的tcp连接过多,一般是正常断开后没有正常回收,宝塔监控显示,服务器负载和CPU使用率经常达到100%,导致网站无法访问。重启服务器多次,在Nginx免费防火墙屏蔽了一些IP,网站勉强恢复访问,自2021年1月底这种情况已经出现约10次。
我们觉得程序可以优化,给供应商提了工单,但是程序供应商推脱说不是程序问题,不愿意升级程序,说购买服务器安全软件来防护,具体什么防护软件也说不上来,实话讲,对他们有些失去信心。
现在是在宝塔面板中将网站流量做了限制,并发限制设置为100,单IP限制并发限制为25,流量限制为512K,Nginx免费防火墙将网站的CDN功能也打开,今天服务器暂时没有出现负载和CPU使用率达到100%的情况,网站可以访问。
请问大家遇到过这个问题吗?该如何解决呢?请大家支招,谢谢!
|
|