
Ich habe die folgende Situation. Der Webinhalt meiner App befindet sich in einem Standardverzeichnis /var/www/my.domain.com/html/
. Außerdem habe ich users_statics
irgendwo in diesem Verzeichnis einen Ordner, in dem meine App einige wichtige Dateien speichert, die von Benutzern hochgeladen wurden. Beachten Sie, dass diese Dateien nicht in den Frontend-Build integriert sind und während der Verwendung nur URLs zu diesen Dateien benötigt werden.
Mein Deploy-Pipeline-Skript löscht jedoch alle darin enthaltenen Dateien /var/www/my.domain.com/html/
und fügt einen neuen Frontend-Build ein, der standardmäßig kein user_statics
Verzeichnis enthält. Beispiel:
rm -rf /var/www/my.domain.com/html/*
cp -av build/. /var/www/my.domain.com/html/
Daher bin ich gezwungen, user_statics
das Verzeichnis an einem anderen Ort zu speichern und rsync
es nach jeder Bereitstellung in den Webinhaltsordner zu verschieben:
mkdir /var/www/my.domain.com/html/.../user_statics
rsync -qah ./user-statics-bkp/* /var/www/my.domain.com/html/.../user_statics
Ich bin nicht sicher, ob dies die beste Vorgehensweise für diesen Ordner ist, da ich zu diesem Zeitpunkt der Backend-App eine API hinzufügen möchte, um mit ihrem Inhalt zu interagieren. So kann es beispielsweise während des Bereitstellungsprozesses zu falschen API-Aufrufen dieses Ordners kommen.
Ich sehe die folgenden Optionen, aber keine davon scheint mir perfekt:
- Schreiben Sie die CD-Pipeline irgendwie neu, um diesen Ordner während der Bereitstellung zu „ignorieren“.
- Verschieben Sie diesen Ordner in den
/var/www/html/
Ordner und schreiben Sie zusätzliche Anweisungen in die Nginx-Konfigurationsdatei. - Öffnen Sie eine Subdomain für diesen Ordner und erstellen Sie einen Serverblock für diese Subdomain. Ich bin mir jedoch nicht sicher, ob dieser eine Ordner es „verdient“, in den neuen Serverblock aufgeteilt zu werden.
Gibt es Ihrer Erfahrung nach bessere Möglichkeiten, richtig damit umzugehen?
Antwort1
Schließlich habe ich diesen Ordner in diesem Pfad platziert und der Nginx-Konfigurationsdatei /var/www/html/path/to/user_statics
eine einfache Standortanweisung hinzugefügt :sites-available/my.domain.com
location /path/to/user_statics {
root /var/www/html/;
}
Danach leitet Nginx user_statics
die Anfragen an diese Stelle im Dateisystem des Servers weiter, getrennt von /var/www/my.domain.com/html/
. Im Moment funktioniert diese Lösung für mich gut.