Melhor maneira de servir uma pasta estática que não é apresentada na construção do frontend

Melhor maneira de servir uma pasta estática que não é apresentada na construção do frontend

Eu tenho a seguinte situação. O conteúdo da Web do meu aplicativo está localizado em um diretório padrão /var/www/my.domain.com/html/. Também tenho uma pasta users_staticsem algum lugar dentro deste diretório, onde meu aplicativo armazena alguns arquivos essenciais que foram carregados pelos usuários. Observe que esses arquivos não são incorporados na construção do frontend e, durante o uso, apenas URLs para esses arquivos são necessários.

No entanto, meu script de pipeline de implantação exclui todos os arquivos dentro /var/www/my.domain.com/html/e insere uma nova construção de frontend, que por padrão não contém user_staticsdiretório. Por exemplo:

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

Portanto, sou obrigado a armazenar user_staticso diretório em algum outro local e, após cada implantação, rsyncna pasta de conteúdo da web:

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

Não tenho certeza se essa é a maneira mais desejável de lidar com essa pasta, pois a essa altura quero adicionar uma API ao aplicativo de back-end para interagir com seu conteúdo. Assim, por exemplo, posso encontrar chamadas de API incorretas para esta pasta durante o processo de implantação.

Vejo as seguintes opções, mas nenhuma delas me parece perfeita:

  1. De alguma forma, reescreva o pipeline do CD para "ignorar" esta pasta durante a implantação.
  2. Mova esta pasta para a /var/www/html/pasta e escreva diretivas adicionais no arquivo de configuração nginx.
  3. Abra o subdomínio para esta pasta e crie um bloco de servidor para este subdomínio. No entanto, não tenho certeza se esta pasta "merece" ser separada do novo bloco de servidor.

Pela sua experiência, existem maneiras melhores de lidar corretamente com isso?

Responder1

Finalmente coloquei esta pasta neste caminho /var/www/html/path/to/user_staticse adicionei uma diretiva de localização simples ao sites-available/my.domain.comarquivo de configuração do nginx:

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

Então, depois disso, os proxies nginx user_staticssolicitam esse local no sistema de arquivos do servidor, separado de /var/www/my.domain.com/html/. Neste momento esta solução funciona bem para mim.

informação relacionada