当前位置:首页 > nginx > 正文

nginx怎么设置网关限流(为什么有gateway还要nginx)

  • nginx
  • 2024-03-20 20:04:02
  • 4220
Nginx 网关限流设置
Nginx 网关限流通常通过以下要素配置:

速率限制(limit_rate)


- 设置特定时间窗口内请求的最大数量。
- 例如:limit_rate 100r/s; (每秒最多 100 个请求)

令牌桶(ngx_http_limit_conn_module)


- 按时间生成一定数量的令牌,每个请求消耗一个令牌。
- 例如:limit_conn_zone $binary_remote_addr zone=myzone:10m; (每 10 分钟生成 10 个令牌)

漏桶(ngx_http_limit_req_module)


- 接收请求并将其存储在队列中,超出队列限制的请求将被丢弃。
- 例如:limit_req_zone $binary_remote_addr zone=myzone:10m rate=3r/s; (每秒最多 3 个请求)

白名单和黑名单


- 可以通过 IP 地址或其他条件将某些 IP 列入白名单或黑名单,以绕过限流规则。
- 例如:limit_except remote_addr 192.168.1.1; (白名单 192.168.1.1)

负载平衡


- 可以使用 Nginx 负载均衡器将请求分发到后端服务器,并设置每个服务器的限流规则。
- 例如:server { listen 80; server_name example.com; location / { proxy_pass https://backend1; limit_rate 50r/s; } } (对 backend1 应用 50r/s 的速率限制)

上一篇:nginx 网关配置

下一篇:nginx可以限流吗