Назад | Перейти на главную страницу

NGINX: цикл внутреннего перенаправления: требуется помощь по настройке

Я пытаюсь настроить очень простую конфигурацию nginx для обслуживания статического контента. Вот моя настройка конфигурации. Я получаю HTTP 500 всякий раз, когда пытаюсь получить доступ к несуществующему файлу вместо 404. Дайте мне знать, что я делаю не так?

2012/12/21 11:15:14 [ошибка] 1906 # 0: * 41 цикл перезаписи или внутреннего перенаправления при внутреннем перенаправлении на «/index.html», клиент: 127.0.0.1, сервер: i.domain.com, запрос : "GET /favicon.ico HTTP / 1.1", хост: "i.domain.com"

server {
        listen   127.0.0.1:81; ## listen for ipv4; this line is default and implied
        root /project/;
        index index.html index.htm;
    location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
    access_log      off;
    log_not_found   off;
    expires         360d;
    }
        server_name i.domain.com;
        location / {
                try_files $uri $uri/ /index.html;
        }
        error_page 404 /404.html;
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
                root /usr/share/nginx/www;
        }
}

Вы не создавали index.html файл в /project каталог

Похоже, у вас 2 проблемы.

  1. У вас нет файла /index.html
  2. У вас нет файла /404.html

Когда запрос сделан, он проходит процесс проверки файлов. В конце он понимает, что index.html не существует, и возвращает 404. Чтобы выполнить эту задачу, он должен получить 404.html, и запрос начинается заново. Он проверяет $ url (где $ url определяется как "404.html"), затем $ url /, затем снова index.html и входит в бесконечный цикл.

Когда вы вошли в цикл inf, это внутренняя ошибка. Таким образом, обслуживается подходящая ошибка 500.