2012-12-15 6 views
26

Ich bin im Begriff, einen neuen Server von aufsetzt. Der http-Server meiner Wahl ist NGINX. Ich möchte die Domain audi-freunde-einbeck.de als virtuellen Host hinzufügen. Ich habe bereits zwei andere Domänen in dort und es funktioniert gut, aber wenn ich versuche, die oben genannte Domäne hinzuzufügen und starten Sie den Server es gibt mir Job failed. See system journal and 'systemctl status' for details. Ich dachte, es wegen des Strichs war, also versuchte ich nur verschiedene andere Domains mit und ohne Bindestriche, aber ne Glück. Derselbe Fehler. Was könnte das verursachen? Ich habe auch versucht, neu zu starten, ich bin hier wirklich ratlos. Jede Hilfe würde sehr geschätzt werden.Nginx immer Fehler mit bestimmten Domainnamen

Ich habe um ein bisschen gespielt und fand heraus, dass, wenn ich eine Domain nur setzen in, es funktioniert. Aber wenn ich eine andere Domain einstelle, hört es auf. Hier ist die Ausgabe im Status:

[[email protected] 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 
+0

Haben Sie an irgendwelchen Logs geschaut? – willglynn

+0

Welche Protokolle sollte ich betrachten? – oengelha

Antwort

65

Dies passiert höchstwahrscheinlich wegen des langen Domain-Namens. Sie können dieses Problem beheben, indem

server_names_hash_bucket_size 64; 

an der Spitze Ihres http Block hinzugefügt wird. Ich zitiere aus der nginx-Dokumentation, was zu tun ist, wenn dieser Fehler auftritt: In this case, the directive value should be increased to the next power of two. Also in Ihrem Fall sollte es 64.

Referenz geworden: http://nginx.org/en/docs/http/server_names.html#optimization

+0

Vielen Dank! Das hat den Trick gemacht. :) – oengelha

+6

Ich bekomme "nginx: [emerg]" server_names_hash_bucket_size "Direktive ist hier nicht erlaubt" ABER das funktioniert in meinem "http" -Block. Wenn genug Leute zustimmen, können wir vielleicht die Antwort bearbeiten. –

+0

@ PJ Sie haben Recht. Ich habe die Antwort bearbeitet. Interessanter –