Как настроить сервер nginx для распределения статических файлов из различных папок?

  • 6 сентября 2023 г. 16:57
Ответы на вопрос 2
Чтобы настроить сервер nginx для распределения статических файлов из различных папок, вы можете использовать директиву `location` в вашем конфигурационном файле nginx.

Вот пример конфигурации, который раздает файлы различных типов изображений из папок `src/images/slider`, `src/images/svg` и `src/images/all`, а также статические файлы CSS и JS из папок `src/style/common/file.css`, `src/style/components/file.css` и `src/js/loader/index.js`:

```
server {
    ...
    
    location /images/ {
        alias /path/to/src/images/;
        
        location ~* \.(jpg|jpeg|png|gif)$ {
            access_log off;
            expires max;
        }
    }
    
    location /style/ {
        alias /path/to/src/style/;
        
        location ~* \.(css)$ {
            access_log off;
            expires max;
        }
    }
    
    location /js/ {
        alias /path/to/src/js/;
        
        location ~* \.(js)$ {
            access_log off;
            expires max;
        }
    }
    
    ...
}
```

В этом примере используется директива `alias`, чтобы указать путь к папкам с файлами. Затем внутри каждой `location` указывается тип файлов, которые должны быть разданы (например, `jpg`, `jpeg`, `png`, `gif` для изображений или `css` для стилей), и настройки для этих файлов, такие как отключение логирования доступа (`access_log off`) и установление кэширования (`expires max`).

Не забудьте заменить `/path/to/src/images/`, `/path/to/src/style/` и `/path/to/src/js/` своими соответствующими путями к папкам. Также не забудьте перезапустить сервер nginx после внесения изменений в конфигурацию.

После настройки сервера nginx таким образом, вы можете использовать пути, указанные в HTML для доступа к соответствующим файлам. Например, если ваш сервер nginx работает на `http://example.com`, вы можете использовать путь `/images/slider/image.jpg` для доступа к файлу `image.jpg` в папке `src/images/slider`, или путь `/style/common/file.css` для доступа к файлу `file.css` в папке `src/style/common`.
listen 80;
server_name site.local;
root /src;

location / {
        try_files $uri /index.html$is_args$args;
    }Отдается файл index.html, который находится в папке /src, если запрошенный файл не найден в /src. Например:/images/foo.jpg -> отображается изображение (если оно находится в папке /src/images/foo.jpg)/maks/foo.jpg -> отображается изображение (если оно находится в папке /src/maks/foo.jpg)/blablabla/foo.jpg -> отображается файл index.html (если папка /src/blablabla не существует или не содержит файл foo.jpg)/index.html -> отображается файл index.html
Похожие вопросы