gpt4 book ai didi

NGINX 仅对成功请求启用速率限制

转载 作者:行者123 更新时间:2023-12-02 20:26:38 25 4
gpt4 key购买 nike

是否有办法仅对成功请求(即 HTTP 状态代码 200)启用速率限制?

例如,在我的配置的以下代码片段中...

http {
limit_req_zone $binary_remote_addr zone=test:10m rate=2r/m;

server {
location / {
limit_req zone=test;
proxy_pass http://localhost:3000/;
...
}

...
}

...
}

...请求成功率受到限制(每分钟最多两个请求)。

但是,由于这是用于向我发送电子邮件的联系表单,因此如果 http://localhost:3000/ 返回错误,我不关心速率限制,因为不会发送任何电子邮件.

最佳答案

不,没有。

Nginx 从读取请求到发送响应分 11 个阶段处理 HTTP 请求:读取后、服务器重写、查找配置、重写、重写后、预访问、访问、访问后、尝试文件、内容,记录。

proxy_pass 处于内容阶段,而 limit_req 处于预访问阶段(请参阅ngx_http_limit_req_module .c),预访问阶段处理程序在内容阶段处理程序之前执行,因此limit_req处理程序无法检查响应代码是否正常。

关于NGINX 仅对成功请求启用速率限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49708570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com