yii2中的速率限制与使用nginx进行速率限制

yii2中的速率限制与使用nginx进行速率限制,nginx,yii2,Nginx,Yii2,通过yii2进行速率限制与使用nginx(例如,作为反向代理和速率限制)之间的区别是什么 REF:区别在于您在web应用程序的哪一层配置api服务器调用的速率限制 在第一种情况下,您可以直接在php代码中配置限制 通过在标识类(用于管理api调用数据的模型)中实现方法,yii将自动使用将限制头添加到响应中 相反,在nginx中,您可以直接在Http服务器配置中设置此限制,服务器将负责与头进行对话,然后限制请求 这里真正的问题是“我应该使用yii还是nginx方法?”。答案可能会以构建api服务的

通过yii2进行速率限制与使用nginx(例如,作为反向代理和速率限制)之间的区别是什么


REF:

区别在于您在web应用程序的哪一层配置api服务器调用的速率限制

在第一种情况下,您可以直接在php代码中配置限制

通过在标识类(用于管理api调用数据的模型)中实现方法,yii将自动使用将限制头添加到响应中

相反,在nginx中,您可以直接在Http服务器配置中设置此限制,服务器将负责与头进行对话,然后限制请求

这里真正的问题是“我应该使用yii还是nginx方法?”。答案可能会以构建api服务的方式隐藏

很多人都会说,使用http服务器来处理这方面的问题是最“自然”的方式,但是Yi2可以让您使用php来定制速率限制,当您想要开发具有中/高复杂度的api服务器时,这将成为您的优势

在一些(非常)罕见的情况下,您可以将yii2与nginx结合起来,以获得更为定制的东西

使用率限制(如yii2)更灵活。例如,您可以为每个用户编写不同的限制。或者将请求放入某个队列以供将来执行。但是每一个超过这个限制的请求仍然会影响PHP脚本

Nginx限制了灵活性,但允许在PHP脚本之前停止请求

Nginx限制通常用作DOS保护。通常的任务:例如,不要允许从一个IP派生太多PHP进程

用作应用程序后端过载保护的应用程序速率限制。它可以是数据库或外部API。此外,应用限制可以用作业务逻辑的一部分(不同电价计划的不同费率限制等)