Перейти к основному содержимому
Раздача статического содержимого

Раздача статического содержимого

Bводные данные

Nginx может раздавать статические файлы, например изображения и HTML-страницы.

Рассмотрим пример, в котором в зависимости от запроса файлы будут раздаваться из разных локальных каталогов:

  • /data/html, который содержит HTML-файлы
  • /data/images, содержащий файлы с изображениями.

Для этого нужно:

  1. Отредактировать конфигурационный файл nginx.conf, расположенный в директории /etc/nginx.
  2. Настроить директиву server внутри контекста http с двумя директивами location.

Последовательность настройки

  1. Создать каталог /data/html и положить в него файл index.html с любым текстовым содержанием
  2. Создайть каталог /data/images и положить в него несколько файлов с изображениями
  3. Открыть конфигурационный файл.
  4. Закомментировать лишние блоки: конфигурационный файл по умолчанию уже включает в себя несколько примеров блока server, в основном закомментированных.
  5. Добавить новую директиву server:
http {
server {
}
}
  1. В контекст server нужно добавить директивы location для двух запросов:
server {
location / {
root /data/html;
}

location /images/ {
root /data;
}
}

Результат настройки

Это конфигурация сервера с настройками:

  • слушать 80 порт,
  • быть доступным на локальном компьютере по адресу http://localhost/,
  • отвечать на запросы, URI которых начинаются с /images/, файлами из каталога /data/images,
  • указывать 404 ошибку в случае отсутствия файла,
  • на остальные запросы (URI которых не начинаются на /images/) отвечать из каталога /data/html.

Например:

  • на запрос http://localhost/images/example.png Nginx отправит в ответ файл /data/images/example.png.
  • на запрос http://localhost/some/example.html Nginx отправит в ответ файл /data/html/some/example.html.