2014-01-29 11 views
5

Mit Nginx habe ich ein Setup für mehrere Domänen für einen Server erstellt, der aus vier einzelnen Standorten besteht. Wenn ich Nginx starte, bekomme ich eine Fehlermeldung und die Seiten scheinen durcheinander zu kommen, da die Eingabe in eine URL zu einer der anderen Seiten führt.Mehrere Domänen auf einem Server verweisen auf falsche Websites

Die Fehlermeldung angezeigt -

Restarting nginx: nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored 
nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored 
nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored 
nginx. 

Ich habe alle vier Domänen in ähnlicher Weise in ihrer jeweiligen Datei unter/set up sites-available -

server { 
     listen 80; 

     root /var/www/example.com/public_html; 
     index index.php index.html index.htm; 

     server_name example.com www.example.com; 

     location/{ 
       try_files $uri $uri/ /index.html; 
     } 

     # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 
     location ~ \.php$ { 
       try_files $uri =404; 
       fastcgi_pass unix:/var/run/php5-fpm.sock; 
       fastcgi_index index.php; 
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
       include fastcgi_params; 

     } 

} 

Ich habe überprüft und Es gibt keine Standarddatei in/sites-enabled. Vermutlich gibt es eine fehlerhafte Einstellung in der Nginx-Hauptkonfiguration, aber nicht sicher, wonach zu suchen ist.

+0

Vielleicht haben Sie eine 'server' in der Hauptkonfigurationsdatei definiert (' nginx.conf')? –

+0

Nein, nur http und Ereignisse Optionen. Alles was ich besonders suchen sollte? –

+0

Ich fragte, dass weil die Standard 'nginx.conf' eine Reihe von Beispiel 'server' Blöcken hat, vielleicht vergessen haben, sie zu entfernen. Was ist in deiner Hauptkonfigurationsdatei? Kannst du es in Pastebin oder etwas Ähnliches posten? –

Antwort

2

Überprüfen Sie das Verzeichnis /etc/nginx/sites-enabled/, wenn es eine temporäre Datei wie ~default gibt. Löschen Sie es und Problem gelöst.

Credit: @OmarIthawi nginx error "conflicting server name" ignored

+0

Danke, aber ich habe das bereits in einem früheren Setup entfernt. –

9

Ihre nginx.conf lädt seine externen Server Dateien aus dem Pfad, den Sie in Ihren include-Anweisungen haben.

Wenn Sie eine Datei in include /etc/nginx/conf.d/*.conf; haben und ihre symlinked zu include /etc/nginx/sites-enabled wird es die Datei zweimal laden, die diesen Fehler verursachen würde.

+0

Danke @JClarke. Das hat das Problem für mich gelöst. Ich habe gerade kommentiert "include /etc/nginx/conf.d/*.conf;" Zeile auf meiner Nginx.conf-Datei und die Fehlermeldung war weg! –

1

In meinem Fall keine sites-enabled noch doppelt enthält ....

Die Lösung wurde mehr als eine Referenz zu vermeiden „hören 80“ (wenn Sie alle der conf.d Dateien als Ganzes betrachten) und "server_name" referenzen ...

In meinem Fall enthalten default.conf und kibana.conf beide Verweise auf diese Jungs ... Ich habe den Standard und Problem gelöst kommentiert!

My 2 cents ....

3

ich das gleiche Problem mit meinem Ubuntu/nginx/gunicorn/django 1.9 Websites, auf meinem lokalen Rechner. Ich hatte zwei Nginx-Dateien in meinem/etc/nginx/sites-enabled. Entfernen eines der beiden zur verbleibenden Site erlaubten Arbeiten. Die beiden Dateien landen immer auf einer der beiden Seiten. Ich bin mir nicht sicher, wie es aussah.

So, nachdem bei mehreren Stapelüberlauf Fragen suchen, ohne eine Lösung finden ich hier ging: http://nginx.org/en/docs/http/request_processing.html

Es endet, dass Sie mehrere Server in einer sites-enabled Datei haben kann, also habe ich dazu:

server { 
    listen 80; 
    server_name joelgoldstick.com.local; 
    error_log /var/log/nginx/joelgoldstick.com.error.log debug; 
    location/{ 
     proxy_pass http://127.0.0.1:8002; 
    } 
    location /static/ { 
     autoindex on; 
     alias /home/jcg/code/python/venvs/jg18/blog/collect_static/; 
    } 
} 

server { 
    listen 80; 
    server_name cc-baseballstats.info.local; 
    error_log /var/log/nginx/baseballstats.info.error.log debug; 
    location/{ 
     proxy_pass http://127.0.0.1:8001; 
    } 
    location /static/ { 
     autoindex on; 
     alias /home/jcg/code/python/venvs/baseball/baseball_stats/collect_static/; 
    } 
} 

ich kann jetzt lokal meine beiden Seiten zugreifen

Verwandte Themen