Das Nginx-Fehlerprotokoll zeigt seltsame Ergebnisse

Das Nginx-Fehlerprotokoll zeigt seltsame Ergebnisse

Hier ist meine Nginx-Konfiguration in Kürze:

...

server {
    listen   80;
    server_name whatever;
    root /var/www/;

    location /api/1.0 {
        ...
        `proxy_pass http://localhost:8000/;
    }

    location /api/2.0 {
        ...
        proxy_pass http://localhost:8080/;
    }

    location / {
        root /var/www/static/;
        default_type text/html;
        try_files  $uri $uri/index.html index.html;
    }
}

Wenn ich jetzt zu gehe localhostund einen zufälligen Namen anhänge, der weder einer meiner statischen Dateien entspricht noch in einer der beiden Anwendungen etwas bedeutet (z. B. http://localhost/whatever), erhalte ich einen merkwürdigen Fehler in meinem Protokoll:

14.09.2013 20:58:20 [Fehler] 28731#0: *2 open() "/var/wwwindex.html" fehlgeschlagen (2: Keine solche Datei oder kein solches Verzeichnis), Client: 127.0.0.1, Server: ec2-54-234-175-21.compute-1.amazonaws.com, Anfrage: "GET /whatever HTTP/1.1", Host: "localhost"

Ich denke, das spiegelt nur mein mangelndes Verständnis wider, denn ich habe wirklich keine Ahnung, warum nginx versucht, auf "/var/wwwindex.html" zuzugreifen. Beachten Sie, dass ich nicht möchte, dass diese Anfrage erfolgreich ist, sondern nur, dass sie auf eine Weise fehlschlägt, die ich verstehe. Was genau passiert hier? Gedanken sind willkommen, vielen Dank im Voraus!

Antwort1

Ihr try_filesendet mit index.html, das an das angehängt wird root(und das Ende /von rootwird ignoriert). Fügen Sie ein /hinzu.

        try_files  $uri $uri/index.html /index.html;

verwandte Informationen