nginx限流限速
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了nginx限流限速,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1712字,纯文字阅读大概需要3分钟。
内容图文
应用场景
下载限速
限制用户下载速度,使用Nginx ngx_http_core_module模块。
请求限制
限制用户一定时间内可以产生的Http请求数,使用Nginx ngx_http_limit_req_module。
连接限制
限制同一时间用户可以产生的连接数及并发数,使用Nginx ngx_http_limit_conn_module。
场景实践
eg1 基于来源IP对下载速率限制,限制每秒处理1次请求,但可以将5个请求放入缓存区。
#基于$binary_remote_addr参数做限制,在内存中开辟一个名为req_one大小为10M的空间来存放每个IP对应的访问频次信息,限制速率为每秒1个请求。
http {
limit_req_zone $binary_remote_addr zone=req_one:10m rate=1r/s;
}
server {
listen 80;
server_name mirror.atlas.com;
#请求超过1r/s剩下的放入缓存延迟处理,超过burst值后返回503。
limit_req zone=req_one burst=3 nodelay;
location / {
root /code;
index index.html;
}
}
eg2 设置共享内存区域和给定键值的最大允许连接数,超过限制返回503。
http {
limit_conn_zone $binary_remote_addr zone=conn_mg:10m;
}
server {
listen 80;
server_name mirror.atlas.com;
#最多允许两个连接。
limit_conn conn_mg 2;
location / {
root /code;
index index.html;
}
}
eg3 限制下载速度。
server {
listen 80;
server_name mirror.atlas.com;
#限制100M后下载速度降到100K。
limit_rate_after 100m;
limit_rate 100k;
location / {
root /code;
index index.html;
}
}
eg4 限制web服务器请求处理速度为1秒1个,触发值为5、限制用户仅可同时下载一个文件。当下载超过100M时限制下载速度为500K。如果同时下载超过2个视频,则返回提示“请充值”。
#在http块中定义请求zone和连接zone的内存区域名称和大小。
http {
limit_req_zone $binary_remote_addr zone=req_mg:10m rate=1r/s;
limit_conn_zone $binary_remote_addr zone=conn_mg:10m;
}
server {
listen 80;
server_name mirror.oldxu.com;
root /code;
charset utf8;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
#限制请求处理速度1秒1个,最多缓存5个请求。
limit_req zone=req_mg burst=5 nodelay;
#限制最多1个连接,下载超过100M后限速到500K,超过连接限制返回503时定向到errpage返回请充值。
limit_conn conn_mg 1;
limit_rate_after 100m;
limit_rate 500k;
error_page 503 @errpage;
location @errpage {
default_type text/html;
return 200 ‘请充值‘;
}
location / {
index index.html;
}
}
原文:https://www.cnblogs.com/atlas-777/p/15202236.html
内容总结
以上是互联网集市为您收集整理的nginx限流限速全部内容,希望文章能够帮你解决nginx限流限速所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。
来源:【匿名】