Nginx是大型架构核心,下面我详解Nginx限流@mikechen
高并发场景
在高并发系统中,Nginx不仅仅是负载均衡器,更是系统的第一道防线。

Nginx 作为整个系统的“看门神”(流量接入层),限流是它最核心的功能之一。
Nginx 的限流核心思想是:“宁可拒绝一部分请求,也要保护后端服务(如 Tomcat/MySQL)不被冲垮。
限流
Nginx 最常见的限流方式是基于 limit_req 和 limit_conn 模块。

limit_req 用于限制请求速率,适合防止接口被短时间内大量打爆。
http {
limit_req_zone $binary_remote_addr zone=req_limit:10m rate=10r/s;
server {
location /api/ {
limit_req zone=req_limit burst=20 nodelay;
}
}
}
rate,rate=10r/s
表示:
每秒最多10个请求。
limit_conn 用于限制并发连接数,适合控制单个客户端或某类流量占用过多连接资源。

http {
limit_conn_zone $binary_remote_addr zone=conn_limit:10m;
server {
location / {
limit_conn conn_limit 20;
}
}
}
单IP最多20个连接
超过:
503 Service Unavailable。
限流的核心在于:把不可控流量变为可预测流量。
这样既能保证系统平稳处理请求,又能在高峰期避免后端线程池、数据库连接池被瞬间耗尽。