在说ngx_http_limit_req_module的文档中
客户端IP地址是一个关键。 请注意,不是$ remote_addr,$ binary_remote_addrvariables在这里使用,它允许将状态大小减小到64字节。 一兆字节的区域可以保持约一万六千字节的状态。 如果区域存储耗尽,服务器将返回503(服务暂时不可用)错误到所有进一步的请求。
不幸的是,它没有说如果你不使用IP地址的二进制版本将有多大。 我需要使用$http_x_forwarded_for作为关键字,在这种情况下每个状态有多大?
这是一个有教养的猜测,而不是100%的知识。
一个IP地址需要4个字节的二进制forms,因为它是一个32位整数。
在文本forms中,IP地址占用15个字节(xxx.xxx.xxx.xxx),而string需要结束分隔符,即空字符。
所以我最好的猜测是IP地址需要16个字节而不是4个字节。 在这种情况下,这意味着每个状态将占用72个字节而不是64个字节。
但是,根据内部实施情况,可能需要更多。