如何优化Nginx limit_req_zone公式应对千万级IP高并发限流挑战?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1277个文字,预计阅读时间需要6分钟。
网上常说1m内存能存约16000个$binary_remote_addr,这是基于IPv4地址(4字节)和基础状态字段(如计数器、时间戳)的粗略估算。实际存储量可能多少取决于Nginx版本、编译选项(例如是否启用--with-http_realip_module)以及你使用的key是否仅使用$binary_remote_addr。
更关键的是:IPv6 地址占 16 字节,$binary_remote_addr 对 IPv6 就不是 4 字节了;如果 key 里混了 $host 或 $request_uri,内存占用会指数级上升——一个带参数的 URI 可能轻松吃掉上百字节。
本文共计1277个文字,预计阅读时间需要6分钟。
网上常说1m内存能存约16000个$binary_remote_addr,这是基于IPv4地址(4字节)和基础状态字段(如计数器、时间戳)的粗略估算。实际存储量可能多少取决于Nginx版本、编译选项(例如是否启用--with-http_realip_module)以及你使用的key是否仅使用$binary_remote_addr。
更关键的是:IPv6 地址占 16 字节,$binary_remote_addr 对 IPv6 就不是 4 字节了;如果 key 里混了 $host 或 $request_uri,内存占用会指数级上升——一个带参数的 URI 可能轻松吃掉上百字节。

