2016-06-03 13 views
1

Alle Konfigurationen sind enthalten und conf Test ist auch bestanden. Aber Nginx liefert immer noch den Standard-HTML-Code von /usr/share/nginx/html anstelle von location root aus der Datei conf im Verzeichnis conf.d.Nginx einschließlich conf von conf.d aber immer noch laden Standardeinstellungen

conf Datei aus conf.d Verzeichnis

upstream django { 
    server   unix:///tmp/server.sock; 
} 

server { 
    listen   80; 
    server_name  server.test.com; 
    access_log  /srv/source/logs/access-nginx.log; 
    error_log  /srv/source/logs/error-nginx.log; 

    location/{ 
     uwsgi_pass  django; 
     include   /srv/source/conf/uwsgi/params; 
    } 

    location /static/ { 
     root   /srv/source/; 
     index   index.html index.htm; 
    } 

    location /media/ { 
     root   /srv/source/media/; 
     index   index.html index.htm; 
    } 

    # alias favicon.* to static 
    location ~ ^/favicon.(\w*)$ { 
     alias /srv/source/static/favicon.$1; 
    } 

} 
+1

Sind Sie 100% sicher, dass Sie Ihren Server als http://server.test.com aufrufen? Da dies ein Problem sein kann - Sie werden auf den Standardserver umgeleitet, der an anderer Stelle definiert ist – Jerzyk

Antwort

0

Der Standard nginx config in /etc/nginx/nginx.conf ist. In der Standardeinstellung der Datei die folgenden Zeilen enthält (zumindest, dass der Fall auf RHEL basieren und Bogen basierte Distributionen):

include /etc/nginx/conf.d/*.conf; 

server { 
    listen  80 default_server; 
    listen  [::]:80 default_server; 
    server_name _; 
    root   /usr/share/nginx/html; 

    # Load configuration files for the default server block. 
    include /etc/nginx/default.d/*.conf; 

    location/{ 
    } 

    error_page 404 /404.html; 
     location = /40x.html { 
    } 

    error_page 500 502 503 504 /50x.html; 
     location = /50x.html { 
    } 
} 

Dank die root im server Abschnitt nginx halten die Dateien in diesem Verzeichnis, bis Sie dienen Kommentiere unsere Zeilen. Dies geschieht kurz nachdem conf.d geladen wurde (wie oben im Code erwähnt).

Egal, was Sie innerhalb conf.d ändern, dass der letzte Teil der Datei noch geladen wird. Da es diese Datei ist (/etc/nginx/nginx.conf), die die Konfigurationen in conf.d lädt.

Und ja, Sie sollten auf jeden Fall diesen Standard server kommentieren, wenn Sie vorhaben, nginx zu verwenden.

+0

Dies ist nicht korrekt. Es ist vollkommen in Ordnung, mehrere Serverblöcke in nginx config zu haben und Konfiguration von einem würde die Konfiguration von einem anderen nicht stören. – solarissmoke

+0

@solarissmoke bin mir nicht sicher, ob es korrekt ist oder nicht, aber die Lösung von grochemal hat funktioniert, sobald ich den Standardserver auskommentiert habe, hat meine App angefangen zu arbeiten. – rayman

+0

@rayman das ist, weil Ihr anderer Server der Standardserver wird, wenn ein anderer nicht angegeben wird. Der Kommentar von @Jerzyk weist auf das eigentliche Problem hin - wahrscheinlich entspricht Ihr 'server_name' nicht dem Host, auf dem Sie gerade arbeiten. – solarissmoke