Не работает директива location в Nginx?

Приветствую всех.

Никак не могу понять принцип работы директив location в Nginx.


Мне нужно, чтобы по запросу типа mysite.com/ отдавалась страничка из /var/www, и при этом чтобы по запросу mysite.com/files можно было с автоиндексом посмотреть файлы из /media/web.


Пытался сделать такое с помощью следующих частей конфига:

location / {
root /var/www;
index index.html;
}

location /files {
root /media/web;
autoindex on;
}



В такой конфигурации на запрос типа mysite.com/files я получаю 404 Not Found.


Подскажите, что я делаю не так?

Заранее спасибо за ответы.
  • Вопрос задан
  • 6474 просмотра
Решения вопроса 1
Тут проблема не в location а в том, что вы не до конца поняли как работает директива root:
При запросе mysite.com/files nginx пытается выдать папку /media/web/files, а ее у вас нет, отсюда 404.
Из документации: «Путь к файлу формируется путём простого добавления URI к значению директивы root. Если же URI необходимо поменять, следует воспользоваться директивой alias.»
Тоесть вам просто надо заменить root на alias
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы