nginx的限流

nginx提供两种限流的方式

  1. 一是控制速率
  2. 二是控制并发连接数
    控制速率的方式之一就是采用漏桶算法
    采用漏桶算法nginx的配置如下图所示:
    在这里插入图片描述
    修改/usr/local/openresty/nginx/conf/nginx.conf
    user root root;
    worker_processes 1;

events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;

#cache
lua_shared_dict dis_cache 128m;

#限流设置  binary_remote_addr:根据请求IP进行限流  

#contentRateLimit:缓存空间名称 10m:缓存空间
#rate=2r/s:每秒钟允许有2个请求被处理
limit_req_zone $binary_remote_addr zone=contentRateLimit:10m rate=2r/s;

sendfile        on;
#tcp_nopush     on;

#keepalive_timeout  0;
keepalive_timeout  65;

#gzip  on;

server {
    listen       80;
    server_name  localhost;

    location /update_content {
        content_by_lua_file /root/lua/update_content.lua;
    }

    location /read_content {
        #使用限流配置
        limit_req zone=contentRateLimit;
        content_by_lua_file /root/lua/read_content.lua;
    }
}

}
2.控制并发连接数
ngx_http_limit_conn_module 提供了限制连接数的能力。主要是利用limit_conn_zone和limit_conn两个指令。如下图所示
在这里插入图片描述
limit_conn_zone $binary_remote_addr zone=addr:10m; 表示限制根据用户的IP地址来显示,设置存储地址为的内存大小10M
limit_conn addr 2; 表示 同一个地址只允许连接2次。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值