接口实现 - php限制用户调用app接口的刷新频率,1秒不能达到20
PHPz
PHPz 2017-04-11 10:01:39
[PHP讨论组]

php限制用户调用app接口的刷新频率,1秒不能达到20。看了很多类似的,但不看懂什么意思,是要具体的建新表保存访问者的信息还是怎么样。(新手程序员)能不能说下怎么弄,最好能有代码。

PHPz
PHPz

学习是最好的投资!

全部回复(2)
迷茫

不建议在PHP里面做,可以考虑在Nginx和防火墙iptables里面做.
比如在Nginx里可以这样配置:

在http里server前加入:
limit_req_zone $binary_remote_addr zone=allips:10m rate=20r/s;
在server里加入:
limit_req zone=allips burst=5 nodelay;
超过每秒20次连接,则把IP加入黑名单,直接deny掉这些IP.

注意,上面提到的用户都是以IP进行识别的,存在误杀的可能.

PHPz

nginx层面做限制。
可以使用openresty,用lua来写,每次请求都接口自增一次访问记录,可以把值记录到redis中。
在单位时间内达到最大限制,返回错误的提示码。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号