[emerg] could not build server_names_hash, you should increase server_names_hash_bucket_size:32
解决nginx报错 nginx: [emerg] could not build server_names_hash, you should increase server_nam es_hash_bucket_size: 32 nginx: configuration file xxxx/conf/nginx.conf test failed
报错原因
该报错产生的原因主要是因为Nginx中的server配置中server_name的定义值过长产生的。
解决方法
在Nginx的http字段内添加如下代码,放大默认bucket_size
http { server_names_hash_bucket_size 64; ..... }
注意:如果已经存在该字段信息,需要加大后面的数值。且数值必须是32的倍数
这时候可能有的同学要问了,他的默认值是多少。根据Nginx的官方文档分析,server_names_hash_bucket_size的默认值有可能是32也有可能是64,或者是其他值,这个默认值的大小取决于CPU的缓存行长度,如果这个值是32,那么定义的如下代码就会报错
http { server_names_hash_max_size 【值为域名长度总和】; server_names_hash_bucket_size 【上升值】; }