首页 > SAP > ABAP > 控制网站流量与限速
2024
10-21

控制网站流量与限速

此网站是自己做买的VPS服务器,然后自己搭建的WEB服务网站,从操作系统到网站搭建都是自己搞的,然最近几个月以来,网站的IP越来越多,可更多的IP是各种肉鸡,采集内容IP,而我的服务器资源总是有限,就导致此网站近几个月又来经常性的崩溃,或者是内存不足,CPU资源不足等等,使用网站访问异常,

由于网站的经常性出错问题,导致近一个月百度搜索来源的IP几乎近于0,也联系了服务器的提供商腾讯云,不过都只是问了个寂寞,对问题没什么实际办法。只能自己折腾,

最近几天通过从网络上查找 解决办法,通过以下几进应该对垃圾IP也一定的限制,通过近两天的观察,现服务器基本正常了,

1.安装Nginx免费防火墙 8.1

这步应该是最基本的,这步应该控制了大部分的垃圾IP。由于我用的是宝塔服务搭建的WEB服务,但他的Nginx防火墙是收费的,所以我选择了软件商店中的第三方软件“Nginx免费防火墙 8.1”,功能上,我把“User-Agent过滤”设置成444错误,这样能直接拒绝问题的AGENT的访问,这能加快些速度。

同时在原来的规则的基础上,增加过滤规则:

(SemrushBot|Barkrowler|AhrefsBot|opensiteexplorer|petalsearch|Googlebot|Nexus|WOW64|YisouSpider|amazonbot|CFNetwork)

这样来把一些不需要的访问控制了,不让他访问。

2.流量控制

通过上面的防火墙后,还发现有两个情况没办法控制 ,

  • 同一IP,同一时间段内大量访问,且User-Agent相同,此种IP应该是为采集网站内容的,但GOOGLE的爬虫也是类似这样的访问,,
  • 同一IP,同一时间段内访问少量,但User-Agent不同,此种IP正常情况的访问应该是一个大公司的IP,然后内部很多人用这个公网IP访问我的网站,但我的就一小网站,这种情况应该会很少,所以应该完全的非法的。

为解决上面两种,我在网站模板的HEAD文件中增加一个流水控制 ,下面的代码,

大概的意思 是:

1.在40分钟内,如同一IP访问网站20次以内,都可正常访问,当20以上时会提示出错,30次以上就会禁IP 2小时。

2.在40分钟内,如同一IP访问网站,如User-Agent改变(用户正常通过浏览器访问此值 应该是不会变的)时,第三次改变User-Agent就把访问次数设置为20次,这样就相当于已访问20次,下一次打开网站就会报403出错了。

以下是代码

3.安装memcached

上面的代码使用了memcached做缓存处理,所以需要PHP的程序上安装一下memcached插件,如下图

控制网站流量与限速 - 第1张  | 优通SAP
最后编辑:
作者:yangsen
本站为个人博客网站,全由我个人维护,我从事SAP开发13年,其它ERP开发7年,基本都是零售行业。本站记录工作学习的过程, 有SAP相关询问专、兼职工作可随时联系我。 有网站相关的问题可直接在文章下方留言,或者联系我。 邮件:yan252@163.com给我。 QQ:415402519