nginx的server_names_hash_bucket_size问题
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,之前nginx可以正常启动的,后来为了测试方便,就增加多了一些域名也都转向到相同的upstream里面,启动不起来。去logs/errors.log查看,发现如下字样:could not build
千家信息网最后更新 2026年11月01日nginx的server_names_hash_bucket_size问题
保存服务器名字的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的提示,那么首要的是增大前一个参数的大小.
之前nginx可以正常启动的,后来为了测试方便,就增加多了一些域名也都转向到相同的upstream里面,启动不起来。
去logs/errors.log查看,发现如下字样:
could not build the server_names_hash, you should increase server_names_hash_bucket_size: 32
原来是由于增加多域名后,在默认大小下已经不能正常hash存储了,需要去修改此参数的大小。
修改conf/nginx.conf中的http节为如下示例
http {
server_names_hash_bucket_size 64;
include mime.types;
default_type application/octet-stream;
.....省略
此处为了以后增加方便,没有直接修改为日志中提示的32大小,而是直接修改为64了
再次启动,正常运行
保存服务器名字的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的提示,那么首要的是增大前一个参数的大小.
大小
参数
处理器
处理
存储
内存
单元
是在
次数
缓存
提示
相同
倍数
再次
名字
地址
域名
多域名
字样
情况
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技企业
新华互联网科技
互联网科技工作委员会
苏州找大状互联网科技有限公司
北京路客互联网科技有限公司
致骋互联网科技
互联网科技视频
鑫亿盛互联网科技
互联网科技论坛
移动互联网科技股
互联网校园科技培训
科技互联网大厂
重庆互联网医院沙龙医盟信息科技
黑科技闪耀互联网之光
互联网科技商业
阿里互联网科技企业
山东有哪些互联网科技公司
有人说阿里系是互联网科技企业
江苏互联网智能科技产品出厂价
互联网高科技绘画
互联网科技网
奇酷互联网科技公司
时间互联网络科技
天下捷融互联网科技
互联网科技有哪些公司
东莞新华互联网科技学校
华夏恒生科技与互联网科技
中和天地互联网科技有限公司
恒生互联网科技业指数调整周期
易企秀互联网科技是做什么的