网站短信发送接口一直在被人循环调用, 严重影响到 app 端的运行性能, 我是先把网站关掉了, 但是接口一直还在调用, 性能问题还是没解决, 求问解决思路
环境: windows server 2008 + apache + php + mysql
PHP中文网2017-05-16 13:11:25
有几个解决思路,我分别简单介绍下。
第一种,可以查看access.log日志,看一下接口访问情况,某个IP如果一分钟内几十次那肯定是在刷了,可以对这个IP做一些限速或者封禁处理,比如这个IP再访问你可以按照自定义的规则让他去按一定时间访问,或者干脆直接黑名单,网络层直接拒绝一切访问。
第二种思路,记录下访问IP,和每分钟最大访问次数和访问时间,当用户访问接口并提交成功后,相关信息放到Memcache或者Redis里,做一个对比如果过期了再提交,没过期就不提交。
第三种思路,做反向代理,内部才能调用接口,然后在代理层对访问进行限制,其实跟第一种思路差不太多。
以上是我个人思考的,不一定是最优的解决方案,欢迎大家批评指正。