Раздача статического содержимого
Раздача статического содержимого
Bводные данные
Nginx может раздавать статические файлы, например изображения и HTML-страницы.
Рассмотрим пример, в котором в зависимости от запроса файлы будут раздаваться из разных локальных каталогов:
- /data/html, который содержит HTML-файлы
- /data/images, содержащий файлы с изображениями.
Для этого нужно:
- Отредактировать конфигурационный файл
nginx.conf
, расположенный в директории/etc/nginx
. - Настроить директиву
server
внутри контекстаhttp
с двумя директивамиlocation
.
Последовательность настройки
- Создать каталог
/data/html
и положить в него файлindex.html
с любым текстовым содержанием - Создайть каталог
/data/images
и положить в него несколько файлов с изображениями - Открыть конфигурационный файл.
- Закомментировать лишние блоки: конфигурационный файл по умолчанию уже включает в себя несколько примеров блока server, в основном закомментированных.
- Добавить новую директиву
server
:
http {
server {
}
}
- В контекст
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
.