我实际上有点惊讶,经过几个小时的谷歌搜索我找不到任何东西,但问题如下:
我想让nginx充当我的API的限制器.
我的配置文件包含一个引用得很好的示例limit_req_zone:
limit_req_zone $binary_remote_addr zone=limit:2m rate=10r/m;
以及location包含预期的指令limit_req zone=limit nodelay;
我希望将nginx附加标头添加到X-RateLimit-Remaining和X-RateLimit-Reset属性的响应消息中.基本上有nginx使用相同值的rate=10r/m填充X-RateLimit-Remaining和时间帧的活动计数来填充刷新前剩余的秒数.rate=10r/mX-RateLimit-Reset
http {
limit_req_zone $binary_remote_addr zone=login:10m rate=2r/s;
limit_req_status 429;
limit_conn_status 429;
server {
listen 80;
server_name [removed];
location / {
limit_req zone=limit nodelay;
proxy_pass http://reverse-proxy-example;
add_header X-RateLimit-Remaining [nginx variable?];
add_header X-RateLimit-Reset [nginx variable?]
}
}
Run Code Online (Sandbox Code Playgroud)
思考?可能?愿意避免点击应用程序来获取这些数字.