LMLPHP后院

nginx: [emerg] could not build server_names_hash, you should increase server_names_hash_bucket_size: 64技术

maybe yes 发表于 2022-06-13 11:00

一口气写了十几篇文章。第一次碰到这种情况,看来我就是太温柔的玩家了,什么东西,只要能干,都得往死里干。

nginx “nginx could not build the server_names_hash” 解决方法 

给一个服务器下增加了一些站点别名,差不多有 20 多个。 

重启 nginx 时候,提示: 

could not build the server_names_hash, you should increase server_names_hash_bucket_size: 32 

解决方法: 

在配置文件的 http{} 段增加一行配置 
server_names_hash_bucket_size 64; 
如果 64 还不够,那么就按32的倍数往上加。 

下面是在中文 wiki 上摘抄的一段说明: 


保存服务器名字的hash表是由指令 server_names_hash_max_size 和 server_names_hash_bucket_size 所控制的。参数 hash bucket size 总是等于 hash 表的大小,并且是一路处理器缓存大小的倍数。在减少了在内存中的存取次数后,使在处理器中加速查找hash表键值成为可能。如果 hash bucket size 等于一路处理器缓存的大小,那么在查找键的时候,最坏的情况下在内存中查找的次数为 2。第一次是确定存储单元的地址,第二次是在存储单元中查找键值。因此,如果Nginx给出需要增大 hash max size 或 hash bucket size 的提示,那么首要的是增大前一个参数的大小.

从上面的描述来看,这个问题不解决问题也不大,主要是查找次数多一点的问题。

2024-03-29 20:10:52 1711714252 0.015362