我想限制传入的请求到一个Nginx路由。
当前的configuration与此类似:
upstream up0 { server xxxx:1111; keepalive 1024; } server { location /auc { limit_req zone=one burst=2100; proxy_pass http://up0/auc; proxy_http_version 1.1; proxy_set_header Connection ""; } }
我想控制在上游服务器上看到的请求数量。 对于所有其他请求,我希望Nginx响应204响应。
通过传入请求的百分比进行控制也是可行的。
AFNetworking 2.2使用自签名证书的SSL固定
两个文档根与Nginx和fastcgi
Nginx作为Nexus的反向代理服务器 – 无法在Docker环境中连接
用Nginx作为非root用户安装Passenger
Docker分离进程和源代码控制
谢谢。
Nginx中$ 0是什么? (mod_rewrite的)
在写入访问日志时,Nginx禁用或解码url编码
EC2网站架构devise
我怎样才能创build一个file_put_contents具有组写入权限的文件?
如何在Nginx上部署Spring Web应用程序?
Nginx使用limit_req_zone和limit_req来限制请求非常有效。
首先创建一个已经定义了限制的区域。 对于全局限制,区域的关键字可以是静态的,也可以使用源IP地址等变量作为区域的关键字,这对于通过特定的ip进行限制是有用的,或者只是对站点上较慢的页面进行限制。 速率可以按每秒或每分钟的请求来定义。
limit_req_zone key zone=name:size rate=rate;
接下来,创建一个将该区域应用于传入请求的规则。 可以首先使用location指令将规则仅应用于特定的请求,或者可以是服务器范围的。 突发选项将排队指定数量的请求超过速率限制,并有助于节流短突发流量,而不是返回错误。
limit_req zone=name [burst=number] [nodelay];
超过速率限制的流量的默认响应代码为503(服务不可用)。 可以设置204(不含内容)的备用代码。
limit_req_status code;
把所有这一切放在一起有效的配置,将位置块中的所有请求限制为每秒10个缓冲区,以便在返回错误之前排队多达50个请求,并返回指定的204响应,如下所示:
http { .... limit_req_zone $hostname zone=limit:20m rate=10r/s; limit_req_status 204; server { ... location / { ... limit_req zone=limit burst=50; } } }
在实践中,服务器块可能会在http块中包含的不同文件中。 为了清晰起见,我只是浓缩了它们。
要测试,请使用泛滥工具或设置请求率= 10r / m(每分钟10次)并使用浏览器。 检查日志并监视被拒绝请求的数量非常有用,以便您了解对用户的任何影响。
可以组合多个limit_req_zone规则来指定松散的全局限制,然后更严格的每个源IP限制。 这将能够在更广泛的用户群之前锁定最持久的少数用户。
总结以上是内存溢出为你收集整理的configurationNGINX以响应一定比例的传入请求全部内容,希望文章能够帮你解决configurationNGINX以响应一定比例的传入请求所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)