
Tengo la siguiente situación. El contenido web de mi aplicación se encuentra en un directorio estándar /var/www/my.domain.com/html/
. También tengo una carpeta users_statics
en algún lugar dentro de este directorio, donde mi aplicación almacena algunos archivos esenciales cargados por los usuarios. Tenga en cuenta que estos archivos no se incorporan en la compilación de la interfaz y, durante el uso, solo se necesitan las URL de estos archivos.
Sin embargo, mi secuencia de comandos de implementación de canalización elimina todos los archivos dentro /var/www/my.domain.com/html/
e inserta una nueva compilación de interfaz, que de forma predeterminada no contiene user_statics
el directorio. Por ejemplo:
rm -rf /var/www/my.domain.com/html/*
cp -av build/. /var/www/my.domain.com/html/
Por lo tanto, estoy obligado a almacenar user_statics
el directorio en alguna otra ubicación y, después de cada implementación, rsync
en la carpeta de contenido web:
mkdir /var/www/my.domain.com/html/.../user_statics
rsync -qah ./user-statics-bkp/* /var/www/my.domain.com/html/.../user_statics
No estoy seguro de que esta sea la forma más deseable de manejar esta carpeta, ya que en este momento quiero agregar API a la aplicación backend para interactuar con su contenido. Por lo tanto, por ejemplo, puedo encontrarme con llamadas API incorrectas a esta carpeta durante el proceso de implementación.
Veo las siguientes opciones pero ninguna me parece perfecta:
- De alguna manera, reescriba la canalización del CD para "ignorar" esta carpeta durante la implementación.
- Mueva esta carpeta a la
/var/www/html/
carpeta y escriba directivas adicionales en el archivo de configuración de nginx. - Abra el subdominio para esta carpeta y cree un bloque de servidor para este subdominio. Sin embargo, no estoy seguro de si esta carpeta "merece" separarse del nuevo bloque del servidor.
Según su experiencia, ¿hay alguna forma mejor de abordarlo correctamente?
Respuesta1
Finalmente coloqué esta carpeta en esta ruta /var/www/html/path/to/user_statics
y agregué una directiva de ubicación simple al sites-available/my.domain.com
archivo de configuración de nginx:
location /path/to/user_statics {
root /var/www/html/;
}
Entonces, después de eso, nginx envía user_statics
solicitudes a este lugar en el sistema de archivos del servidor, separadas de /var/www/my.domain.com/html/
. En este momento esta solución me funciona bien.