
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_statics
em 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_statics
diretó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_statics
o diretório em algum outro local e, após cada implantação, rsync
na 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:
- De alguma forma, reescreva o pipeline do CD para "ignorar" esta pasta durante a implantação.
- Mova esta pasta para a
/var/www/html/
pasta e escreva diretivas adicionais no arquivo de configuração nginx. - 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_statics
e adicionei uma diretiva de localização simples ao sites-available/my.domain.com
arquivo de configuração do nginx:
location /path/to/user_statics {
root /var/www/html/;
}
Então, depois disso, os proxies nginx user_statics
solicitam 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.