server_names_hash_bucket_size

设置用于存储服务器名称的哈希桶大小。 — NGINX HTTP Core

server_names_hash_bucket_size
http
语法server_names_hash_bucket_size size;
默认值32
上下文http
模块NGINX HTTP Core
参数1

说明

在 NGINX 中,"server_names_hash_bucket_size" 指令控制用于在配置中存储服务器名称的哈希桶大小。当定义了多个服务器名称时,NGINX 会对这些名称进行哈希,以提高查找效率并加快将传入请求与定义的服务器块匹配的速度。哈希桶的大小影响哈希表的效率:较小的大小可能导致冲突,迫使哈希表去解决这些冲突,可能影响性能。对于具有大量或较长服务器名称的配置,该指令非常重要,因为它允许微调内存消耗和性能特性。 该指令的参数以字节为单位指定,值通常应为二的幂。选择合适的值取决于具体服务器的使用情况和定义的服务器名称数量。在存在大量服务器名称或名称特别长的情况下,增大桶大小有助于保持哈希解析的效率,因为理想情况下每个桶应包含更少的条目以最小化查找时间。同时要避免将值设置得过大,以免根据服务器的配置和负载浪费内存。

配置示例

http {
    server_names_hash_bucket_size 64;
}

将该值设置得过低可能导致哈希冲突,从而对性能产生负面影响。

使用不是2的幂的值可能导致桶分配不理想。