在云基础架构的Adobe Commerce中配置Fastly速率限制

Fastly在云基础架构上的Adobe Commerce中的速率限制设置延迟了请求,并在超出阈值时返回HTTP 429超出限制)错误。 要解决此问题,请更新Fastly的VCL代码片段中的tarpit间隔。

描述 description

环境

云基础架构上的Adobe Commerce,v2.4.4 - 2.4.8-p2

问题/症状

  • 在超出请求阈值时,Fastly返回HTTP 429超出限制)错误。
  • 由于强制的延迟间隔和处罚持续时间,请求速度变慢。
  • 冷却期的持续时间未明确定义或不可访问。
  • 没有直接的方法可检索或修改延迟间隔、其角色及其调整方式。

解决方法 resolution

Fastly使用滑动窗口算法根据可配置的参数(如请求阈值和惩罚持续时间)实施速率限制。 要了解和调整这些设置,请执行以下步骤:

  1. Fastly在滚动时间窗口(例如,3600秒)上实施速率限制。 当IP超过阈值时:

    • Fastly返回HTTP 429超出限制)响应。
    • 在请求计数低于窗口内的阈值之前,阻止操作会一直继续。
    • Adobe Commerce通过向Fastly发送​ 429 ​响应来启动速率限制,然后将IP置于临时减速区域tarpit中。
  2. Adobe Commerce使用tarpit interval来减慢来自超过速率限制的IP的请求速度。 触发时,它会引入延迟(默认为5秒),然后才会处理进一步的请求。 您可以通过Fastly的API调整此间隔。

  3. 要在云基础架构上的Adobe Commerce中更改延迟时间间隔,请执行以下步骤:

    1. 获取Fastly API令牌以进行身份验证。
    2. 使用Fastly API获取服务的活动VCL配置
    3. 找到magentomodule_rate_limiting_deliver代码片段。
    4. tarpit_interval参数更新为您的所需值(例如,从5秒增加)。
    5. 使用Fastly的API端点上传修改的VCL配置。
    6. 激活更新版本以应用更改。

其他备注:

  • 这些设置专门适用于Adobe Commerce与Fastly的集成。
  • 在部署到生产环境之前,请始终在暂存环境中测试配置更改。
  • 有关编辑VCL片段或使用Fastly的API的详细指导,请参阅Fastly的官方文档或联系支持团队

相关阅读

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f