我实际上有点惊讶,经过几个小时的谷歌搜索后我找不到任何东西,但问题如下:
我希望 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
属性的响应消息中。rate=10r/m
基本上让nginx使用填充的活动计数X-RateLimit-Remaining
和相同rate=10r/m
值的时间范围来填充X-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?]
}
}
想法?可能的?希望避免点击应用程序来获取这些数字。