nginx + springboot 实现限流

1.spring项目打成jar包后,运行起来 :例如我启动项目 ip+ 端口号:172.168.0.217:8090

2.修改nginx配置,增加如下配置
nginx 中有两个主要的指令可以用来配置限流:limit_req_zone 和 limit_req

upstream myserver{
		server 172.168.0.217:8090;  # 以上启动项目,此处可以配置多个
	}
	limit_req_zone $binary_remote_addr zone=perip:10m rate=1r/s;

第一个参数:$binary_remote_addr 表示通过remote_addr这个标识来做限制,“binary_”的目的是缩写内存占用量,是限制同一客户端ip地址。
第二个参数:zone=perip:10m表示生成一个大小为10M,名字为perip的内存区域,用来存储访问的频次信息。
第三个参数:rate=1r/s表示允许相同标识的客户端的访问频次,这里限制的是每秒1次

limit_req_zone 只是设置限流参数,如果要生效的话,必须和 limit_req 配合使用。limit_req 的格式为:limit_req zone=name

location / {
			limit_req zone=perip burst=1;
			proxy_pass http://myserver/;
        }

第一个参数:zone=perip 设置使用哪个配置区域来做限制,与上面limit_req_zone 里的name一致。
第二个参数:burst=1,生成一个缓存空间,请求过来时不直接拒绝,先放在缓存中

在这里插入图片描述
以上配置修改完后,重新加载配置文件。
访问nginx的ip+ 端口号 + 项目接口路径,即可访问spring项目的接口。
同一ip一秒内多次请求,就会被限制住了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值