nginx的:EMERG]无法建立server_names_hash,你应该增加server_nam

2019-08-04 03:39发布

我设立一个新的服务器的过程。 我选择的HTTP的服务器是NGINX。 我想将该域名添加audi-freunde-einbeck.de作为虚拟主机。 我已经在那里有2个其他领域,它工作正常,但是当我尝试添加上述领域,并开始它给我的服务器Job failed. See system journal and 'systemctl status' for details. Job failed. See system journal and 'systemctl status' for details. 我认为这是因为短线的,所以我试着用和不带连字符只是各种其他领域,但没有运气。 同样的错误。 这可能是造成这? 我也试图重新启动,我真的很茫然这里。 任何帮助将不胜感激。

我身边有位出场,结果发现,那个,我只放一个域,它的工作原理。 但是,当我在把另一个域,它停止。 下面是状态的输出:

[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

Answer 1:

这是因为长的域名最有可能发生的事情。 您可以通过添加解决这个问题

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。

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



Answer 2:

  • 开放/etc/nginx/nginx.conf有写权限
  • 取消注释或添加server_names_hash_bucket_size 64;
  • 重启nginx的sudo service nginx restart

如果错误仍然存​​在:

  • 增加server_names_hash_bucket_size在步骤128,256,512,等等(通过每次2的功率增加)。 例如。 server_names_hash_bucket_size 128;
  • 重启nginx的每个时间,直到错误消失(错误永远是你已经设置相同的无论什么值)


Answer 3:

这听起来也许有点乱,但它可能会帮助Nginx上福利局像我这样的。
当我离开一个我得到这个错误;server_name线。

有:

server_name    www.mydomain.com  
access_log     /var/log/nginx/www.mydomain.com; 

固定:

server_name    www.mydomain.com;  
access_log     /var/log/nginx/www.mydomain.com; 

在nginx的配置文件必须以结束所有指令;
我经常强调; S IN保存/上传作为编辑后进行最后的检查之前,我的文件。



文章来源: nginx: [emerg] could not build the server_names_hash, you should increase server_names_hash_bucket_size