Журнал ошибок Nginx показывает странные результаты

Журнал ошибок Nginx показывает странные результаты

Вот краткий конфиг моего Nginx:

...

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;
    }
}

Если я теперь перейду к localhostи добавлю случайное имя, которое не соответствует ничему в моих статических файлах или ничего не означает ни в одном из двух приложений (например, http://localhost/whatever), я получу странную ошибку в своем журнале:

2013/09/14 20:58:20 [ошибка] 28731#0: *2 open() "/var/wwwindex.html" не удалось (2: нет такого файла или каталога), клиент: 127.0.0.1, сервер: ec2-54-234-175-21.compute-1.amazonaws.com, запрос: "GET /whatever HTTP/1.1", хост: "localhost"

Я думаю, это просто отражает мое непонимание, потому что я действительно не понимаю, почему nginx пытается получить доступ к "/var/wwwindex.html". Обратите внимание, что я не хочу, чтобы этот запрос был успешным, я просто хочу, чтобы он потерпел неудачу понятным мне способом. Что именно происходит? Буду признателен за мысли, заранее спасибо!

решение1

Ваш try_filesзаканчивается на index.html, который добавляется к root(и завершающий символ /игнорируется root). Добавьте /к нему a.

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

Связанный контент