zoukankan      html  css  js  c++  java
  • [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,那么定义的如下代码就会报错

    server {
            listen 80;
            server_name www.mslinux.zhongguolong.too.com;  # >=32就会报错
    }
    如果域名数量=32报错就和文档中一致。此时就需要我们将指令值放大;
    http {
            server_names_hash_bucket_size 64;
    }
    在执行nginx -t将会报错解决

      如果定义了一条特别长的server_name。报错如下面代码所示

    could not build the server_names_hash,
    you should increase either server_names_hash_max_size: 512
    or server_names_hash_bucket_size: 32
    那么应该先尝试设置server_names_hash_max_size的值差不多等于名字列表的名字总量。如果还不能解决问题,或者服务器启动非常缓慢,再尝试提高server_names_hash_bucket_size的值。

    http {
            server_names_hash_max_size 【值为域名长度总和】;
            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的提示,那么首要的是增大前一个参数的大小.



  • 相关阅读:
    使用自制事务进行异常信息的记录:Autonomous transactionslog
    backup methodsexp and imp
    一个 SQL 同时验证帐号是否存在、密码是否正确
    使用存储过程进行分页:page by Procedure
    推荐一款类似于editplus的文本编辑工具:note++
    myeclipse8.5反编译插件的安装使用jdgui插件
    [转]JavaMail的使用之邮件发送 详解
    Thinking in java中内部类的例子。
    [转]tomcat6.0下的log4j日志文件配置过程
    127.X.X.X開頭的網路都是特殊用途的嗎!?
  • 原文地址:https://www.cnblogs.com/zouhong/p/12270193.html
Copyright © 2011-2022 走看看