server_names_hash_max_size
'server_names_hash_max_size' 指令设置用于在 NGINX 中存储服务器名称的哈希表的最大大小。 — NGINX HTTP Core
server_names_hash_max_size
http
语法server_names_hash_max_size size;
默认值512
上下文http
模块NGINX HTTP Core
参数1
说明
'server_names_hash_max_size' 指令在 NGINX 中用于指定存储服务器名称的哈希表的最大大小。这是一个重要的参数,因为 NGINX 依赖对服务器名称进行哈希,以有效地将进入的请求路由到正确的服务器块。当服务器名称的数量超过该定义的限制时,哈希机制的效率可能会下降,从而在请求处理时造成潜在的性能影响。 在配置此指令时,请注意如果指定的服务器名称数量超过设定的 'server_names_hash_max_size',NGINX 会自动增大哈希表的大小,这可能导致内存使用量增加。还应注意,尽管此指令定义了哈希表的最大大小,但 NGINX 在运行时实际使用的大小可能会根据服务器名称的数量和哈希算法的具体实现而变化。因此,适当调整此值可以帮助确保 NGINX 保持最佳性能,尤其是在存在大量虚拟主机或复杂配置的环境中。 此指令可在 NGINX 配置文件的 'http' 上下文中使用,确保它影响定义范围内的所有服务器块。对于负责高流量网站或拥有大量服务器配置的管理员来说,仔细考虑该指令可以在请求处理期间最大程度地减少查找开销。
配置示例
http {
server_names_hash_max_size 1024;
}⚠
将值设置得过低可能会导致服务器名称冲突,并由于频繁的内存重新分配而造成性能下降。
⚠
必须在使用此指令之前定义服务器名称,以便哈希表能被适当调整大小。