Какие требования к изменению расположения изображений?

Как изменить папку назначения для картинок на уровне выше root сайта в nginx конфигурации? Проблема заключается в том, что при использовании запроса /resize/422346/asjdhy37772jssh_500x500.webp, сервер должен выдавать изображение из другой папки, расположенной на уровне выше root сайта, но настройка, представленная ниже, не работает:

```nginx
location /resize/ {
   root /home/bitrix/ext_www/images/resize;
}
```

Что нужно исправить в данной настройке?
  • 12 февраля 2024 г. 9:20
Ответы на вопрос 3
В Nginx `root` задает корень для вашего `location`. Если вы хотите указать конкретный путь к файлам, относительно вашего `location`, то следует использовать директиву `alias` вместо `root`.

Сначала давайте поймем структуру вашего URL и файловой системы.

Допустим, ваша текущая настройка сайта выглядит так:

```
server {
    server_name your-domain.com;

    root /var/www/your-domain.com/html;

    location / {
        # конфигурация для обслуживания сайта
    }

    location /resize/ {
        root /home/bitrix/ext_www/images/resize;
        # другие конфигурации...
    }
}
```

И вы хотите, чтобы URL `http://your-domain.com/resize/422346/asjdhy37772jssh_500x500.webp` отдавал файл `/home/bitrix/ext_www/images/resize/422346/asjdhy37772jssh_500x500.webp`.

С использованием `root`, Nginx будет искать файлы в директории `/home/bitrix/ext_www/images/resize/resize/...`, что неверно.

Вам следует использовать `alias`, чтобы путь сопоставлялся корректно:

```nginx
location /resize/ {
    alias /home/bitrix/ext_www/images/resize/;
    # обратите внимание на слэш / в конце пути, он важен при использовании alias
    # другие конфигурации...
}
```

Данная конфигурация будет указывать Nginx, что когда приходит запрос в `location /resize/`, он должен заменять `/resize/` на путь из `alias`, и искать файлы уже в этом новом пути.

Дополнительно, если у вас есть конфигурация, которая запрещает доступ к директориям на уровень выше `root`, вы должны убедиться, что нет дополнительных директив, которые могут блокировать доступ к файлам из новой папки `alias`.
Можно заюзать алиасы : 
А вообще, желательно проверять логи nginx по ~адресу /var/log/nginx/error.log.
Эээ, должно быть просто так: 
Похожие вопросы