Z次元
文章 笔记 日志
专题
专栏分类 文章归档
友链
友情链接 朋友圈
留言
头像
系列文章
使用Nginx实现限流效果
系列文章
前端知识积累
最后更新:2025/10/27|创建时间:2025/10/27
文章摘要
本文介绍了使用Nginx实现限流的多种策略,包括限制每秒请求数、通过连接数限制和地区访问限制,并提供了相应的配置示例。

前言

我们知道,通过后台代码可以实现多种方式限流。那么有没有更简单的方式,不用修改代码也能实现限流呢,那就是使用Nginx。

Nginx提供了多种策略可以实现限流的效果。

限制每秒的请求数

通过Nginx内置的ngx_http_limit_req_module 模块,限制客户端的请求速率。

示例:

# 声明一个全局或者server块
http {
    limit_req_zone $binary_remote_addr zone=mylimit:10m rate=9r/s; 
}

# 使用配置的限速模块
location /ahzoo/api {
    limit_req zone=mylimit burst=99 nodelay;
}

参数说明:

  • zone=req_limit:10m:创建10MB内存区域存储IP请求记录

  • rate=9r/s:限制速率为每秒9个请求

  • burst=99:允许99个请求排队等待

  • nodelay:超出速率的请求立即返回503,不延迟处理

从多个维度进行限制:

http {
    limit_conn_zone $binary_remote_addr zone=per_ip:10m;
    limit_conn_zone $server_name zone=per_server:10m;
    
    server {
        limit_conn per_ip 9;       # 单IP并发9连接
        limit_conn per_server 999; # 服务器总并发999连接
    }
}

通过连接数进行限制

通过Nginx内置的ngx_http_limit_conn_module 模块,限制并发连接数。

示例:

http {
    limit_conn_zone $remote_addr zone=perip:10m;
}

server {
    limit_conn perip 99; # 每个 IP 同时允许99个连接
}

地区访问限制

通过ngx_http_geoip_module 模块,实现区域访问限制。

这个模块需要配合GeoIP库来使用,所以需要提前安装GeoIP库。

示例:

geo $mycountry {
    default 0;
    country china US 1; # 允许中国和美国的 IP
    #set $geoip_city "nj";
}

server {
    if ($mycountry != 1) {
        return 444; # 如果不在白名单国家,则返回 444
    }
}

黑白名单限制

如果需要对具体的IP进行限制,就可以通过设置黑白名单来实现。

示例:

location / {
    deny 192.168.0.1; # 黑名单
    allow 192.168.1.2; # 白名单
    deny all; # 默认拒绝所有其他 IP
}

版权声明
本文依据 CC-BY-NC-SA 4.0 许可协议授权,请您在转载时注明文章来源为 Z次元 ,若本文涉及转载第三方内容,请您一同注明。
更多专栏文章推荐
前端知识积累
人非生而知之者,孰能无惑?惑而不从师,其为惑也,终不解矣。
浏览器注入外部JS文件
2023/8/13
Vue(JavaScript)下载文件方式汇总
2022/3/31
评论区

删除确认

评论删除后无法恢复,请确认是否继续?
发表评论

这里还没有评论哦

快来发一条评论抢占前排吧

前言
限制每秒的请求数
通过连接数进行限制
地区访问限制
黑白名单限制
目录
前言
限制每秒的请求数
通过连接数进行限制
地区访问限制
黑白名单限制
博客
文章 笔记 日志
专题
专栏分类 文章归档
友链
友情链接 朋友圈
交流
留言 关于我
主页
菜单
置顶
主题
我的
十玖八柒
每天进步多一点
欢迎到访φ(゜▽゜*)♪
最新评论
个人占星:
DeepSeek没有想象中的好用
个人占星:
想给自己的网站弄个统计功能,但不会弄,头疼
永恒末匕:
好哇塞,这个厉害
Corwin: @十玖八柒
哎 主要是我的个人网站用的是静态的cos 实现评论框还是有点困难
我的
关于我
个人主页
站点地图
RSS订阅
导航
十年之约
虫洞穿梭
开源博客
前端开源仓库
后端开源仓库
©2020 - 2025 By 十玖八柒 版权所有
豫ICP备20021466号