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一秒内多次请求,就会被限制住了