微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

nginx在X-RateLimit-Remaining头中设置limit_req的剩余数量

我实际上有点惊讶,在search几个小时后我找不到任何东西,但是问题如下:

我想要Nginx作为我的API的油门。

我的configuration文件包含一个引用limit_req_zone示例:

limit_req_zone $binary_remote_addr zone=limit:2m rate=10r/m;

在Windows上自动启动Ruby on Rails服务器

DNSlogging将wwwredirect到非www

SSH – 通过对等方重置连接 – Linux主机

debugging502错误的网关错误 – Ubuntu,Nginx,Unicorn

Nginx SSL握手错误

以及我的location指令包含预期的limit_req zone=limit nodelay;

我希望Nginx附加标题到X-RateLimit-Remaining和X-RateLimit-Reset属性的响应消息中。 基本上有Nginx使用rate=10r/m的活动计数来填充X-RateLimit-Remaining和同一rate=10r/m时间范围值来填充X-RateLimit-Reset ,刷新前剩余多less秒。

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?] } }

思考? 可能? 想避免碰到应用程序来获得这些数字。

安装pandas:UnicodeDecodeError:'ascii'编解码器无法解码位置72中的字节0xe2:序号不在范围内(128)

NodeJs服务器不能从互联网上访问

lighttpd不会将全局环境variables提供给可执行文件

Nginx的别名指令不使用PHP

更改cookie文件后,RabbitMQ节点authentication失败

来自Packet的 Packngo有一个功能,可能很适合你需要做的事情。

来自packngo的示例:

func (r *Response) populaterate() { // parse the rate limit headers and populate Response.Rate if limit := r.Header.Get(headerRateLimit); limit != "" { r.Rate.RequestLimit,_ = strconv.Atoi(limit) } if remaining := r.Header.Get(headerRateRemaining); remaining != "" { r.Rate.RequestsRemaining,_ = strconv.Atoi(remaining) } if reset := r.Header.Get(headerRateReset); reset != "" { if v,_ := strconv.ParseInt(reset,10,64); v != 0 { r.Rate.Reset = Timestamp{time.Unix(v,0)} } } }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐