首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >server_names_hash_bucket_size:[emerg]无法生成nginx,您应该增加nginx

问server_names_hash_bucket_size:[emerg]无法生成nginx,您应该增加nginx
EN

Stack Overflow用户
提问于 2012-12-16 04:30:36
回答 4查看 94.7K关注 0票数 142

我正在设置一个新的服务器。我选择的http-Server是NGINX。我想添加域audi-freunde-einbeck.de作为虚拟主机。我已经有2个其他域名在那里,它工作得很好,但当我尝试添加上面提到的域名,并启动服务器,它给我Job failed. See system journal and 'systemctl status' for details.我认为这是因为破折号,所以我尝试了各种其他域名有和没有连字符,但没有运气。同样的错误。这可能是什么原因造成的?我也试过重启,我真的不知所措。任何帮助都将不胜感激。

我试了一下,发现,当我只放入一个域名时,它就能工作。但是当我添加另一个域名时,它就停止了。以下是状态中的输出:

代码语言:javascript
复制
[root@netzmelone nginx]# systemctl status nginx
nginx.service - A high performance web server and a reverse proxy server
      Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled)
      Active: failed (Result: exit-code) since Sun, 16 Dec 2012 11:38:08 +0000; 7s ago
     Process: 14239 ExecStop=/usr/sbin/nginx -g pid /run/nginx.pid; -s quit (code=exited, status=1/FAILURE)
     Process: 14232 ExecStart=/usr/sbin/nginx -g pid /run/nginx.pid; daemon on; master_process on; (code=exited, status=0/SUCCESS)
     Process: 14242 ExecStartPre=/usr/sbin/nginx -t -q -g pid /run/nginx.pid; daemon on; master_process on; (code=exited, status=1/FAILURE)
    Main PID: 14234 (code=exited, status=0/SUCCESS)
      CGroup: name=systemd:/system/nginx.service

Dec 16 11:38:08 netzmelone nginx[14242]: nginx: [emerg] could not build the server_names_hash, you should increase server_names_hash_bucket_size: 32
Dec 16 11:38:08 netzmelone nginx[14242]: nginx: configuration file /etc/nginx/nginx.conf test failed
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-12-17 07:23:32

这很可能是因为域名太长。可以通过添加以下内容来修复此问题

代码语言:javascript
复制
server_names_hash_bucket_size  64;

位于您的http块(可能位于/etc/nginx/nginx.conf中)的顶部。我引用了nginx文档中的内容,当出现这个错误时该怎么做:In this case, the directive value should be increased to the next power of two。因此,在您的情况下,应该是64。

如果仍然得到相同的错误,请尝试增加到128或更高。

参考:http://nginx.org/en/docs/http/server_names.html#optimization

票数 289
EN

Stack Overflow用户

发布于 2018-06-12 17:35:07

使用write privileges

  • uncomment或add server_names_hash_bucket_size 64;

  • restart nginx sudo service nginx restart

打开/etc/nginx/nginx.conf

如果错误仍然存在:

  • 在步骤128、256、512中增加server_names_hash_bucket_size,依此类推(每次增加2的幂)。例如:每次对nginx执行server_names_hash_bucket_size 128;
  • restart操作,直到错误消失(无论您已经设置了什么值,错误都是一样的)
票数 46
EN

Stack Overflow用户

发布于 2018-11-16 14:39:58

这听起来可能有点随机,但它可能会对我这样的nginx新手有所帮助。

当我在server_name行上遗漏了一个;时,我得到了这个错误。

had:

代码语言:javascript
复制
server_name    www.mydomain.com  
access_log     /var/log/nginx/www.mydomain.com; 

修复:

代码语言:javascript
复制
server_name    www.mydomain.com;  
access_log     /var/log/nginx/www.mydomain.com; 

nginx配置文件中的所有指令都必须以;结尾

我经常在保存/上传之前突出显示文件中的;s,作为编辑后的最终检查。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13895933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档