nginx HttpLimitReqModule是否支持每小时/每天/每周?

lin*_*nbo 11 nginx rate-limiting

我寻求一个解决方案来为http api做限速,对于nginx已经有一个模块HttpLimitReqModule支持这个功能.但是参考文档,该模块仅支持每秒和每分钟.每小时/每天的解决方案?

Ste*_* E. 0

我不知道 nginx 中是否有一个函数可以做到这一点。但是,您可以使用 auth_request 模块将所有传入流量交给上游 Web 服务,该服务检查流量并应用速率限制规则。

location / {
    auth_request /ratelimiter;

    ..
    Normal configuration settings
}

location /ratelimiter {
    proxy_pass http://internalratelimitinghost;
    # return a HTTP 200 to allow the request
    # return anything else to deny it
}
Run Code Online (Sandbox Code Playgroud)

nginx auth_request。默认情况下不包含该模块,因此您需要编译它。