Лучший способ обслуживания статической папки, которая не представлена ​​в сборке frontend

Лучший способ обслуживания статической папки, которая не представлена ​​в сборке frontend

У меня следующая ситуация. Веб-контент моего приложения находится в стандартном каталоге /var/www/my.domain.com/html/. Также у меня есть папка users_staticsгде-то внутри этого каталога, где мое приложение хранит некоторые важные файлы, загруженные пользователями. Обратите внимание, что эти файлы не включены в сборку frontend, и во время использования нужны только URL-адреса к этим файлам.

Однако мой скрипт конвейера развертывания удаляет все файлы внутри /var/www/my.domain.com/html/и вставляет новую сборку frontend, которая по умолчанию не содержит user_staticsкаталога. Например:

rm -rf /var/www/my.domain.com/html/*
cp -av build/. /var/www/my.domain.com/html/

Поэтому мне приходится хранить user_staticsкаталог в каком-то другом месте и после каждого развертывания помещать rsyncего в папку веб-контента:

  mkdir /var/www/my.domain.com/html/.../user_statics
  rsync -qah ./user-statics-bkp/* /var/www/my.domain.com/html/.../user_statics

Я не уверен, что это самый желательный способ работы с этой папкой, поскольку к этому времени я хочу добавить API в бэкенд-приложение для взаимодействия с его содержимым. Таким образом, например, я могу столкнуться с неправильными вызовами API к этой папке во время процесса развертывания.

Я вижу следующие варианты, но ни один из них не кажется мне идеальным:

  1. Каким-то образом перепишите конвейер CD, чтобы «игнорировать» эту папку во время развертывания.
  2. Переместите эту папку в /var/www/html/папку и пропишите дополнительные директивы в файле конфигурации nginx.
  3. Откройте поддомен для этой папки и создайте блок сервера для этого поддомена. Однако я не уверен, что эта папка «заслуживает» того, чтобы быть отделенной в новый блок сервера.

Исходя из вашего опыта, есть ли более эффективные способы правильно с этим справиться?

решение1

Наконец, я поместил эту папку по этому пути /var/www/html/path/to/user_staticsи добавил простую директиву местоположения в sites-available/my.domain.comфайл конфигурации nginx:

location /path/to/user_statics {
     root /var/www/html/;
}

Итак, после этого nginx проксирует user_staticsзапросы в это место в файловой системе сервера, отдельно от /var/www/my.domain.com/html/. На данный момент это решение работает у меня хорошо.

Связанный контент