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

Как обслуживать каталог статических файлов через HTTP с помощью NGINX

Проблема

Сервер с NGINX имеет каталог с файлами, которые он должен обслуживать по HTTP.

Каталог находится по адресу (пример): / media / user / data

Вопрос

Какая конфигурация требуется в NGINX для обслуживания этого каталога (и всех его файлов и подпапок) через HTTP?

Обслуживаемый каталог через HTTP должен быть полностью доступен, и любые пользователи должны иметь возможность просматривать все содержимое каталога.

Требуются все шаги для настройки.

Исследовательская работа

Исследование по теме обнаруженных изменений потребуется в файле по умолчанию в sites-available каталог внутри /etc/nginx папка как таковая:

 location /data {
    root /media/user/;
    autoindex on;
  }
}

Другой

Из недавних комментариев к предлагаемым ответам:

Файл по умолчанию в sites-available был отредактирован, чтобы включить каталог, затем сервер был перезапущен и проверен на работоспособность, посетив 127.0.0.1, который отображал стандартную страницу поздравлений nginx. Затем при попытке доступа http://127.0.0.1/data сервер выдал ошибку 403 Forbidden. - Экономный Расин

Вы можете добиться этого, отредактировав существующий виртуальный хост Nginx (тот, который вы упомянули по умолчанию). Просто убедитесь, что каталог / media / user / data и все содержимое внутри этого каталога доступны для чтения пользователю в запущенной службе Nginx (скорее всего, пользователю "nginx").

Если вы хотите разместить эти файлы в другом (под) домене, вы можете создать новый виртуальный хост Nginx с таким содержимым, как:

server {
  listen *:80;
  server_name example.com www.example.com;

  root /media/user/data;
  autoindex on;
}

Обновить: из комментариев ниже, также было необходимо изменить права доступа к каталогу, чтобы Nginx мог обслуживать контент, а не возвращать 403 forbiden ошибка.

Хотя разрешения /media/user/data/ каталог были хорошими, /media/ и /media/user/ в каталогах отсутствовали разрешения для исполняемых файлов. Проблема была решена следующей командой:

sudo chmod o+x /media/ /media/user/