Bereitstellen statischer Webdateien
Hinweis
Die Pläne Basic, Standard und Enterprise gelten ab Mitte März 2025 als veraltet und werden über einen Zeitraum von drei Jahren eingestellt. Es wird empfohlen, auf Azure Container Apps umzustellen. Weitere Informationen finden Sie in der Ankündigung zur Einstellung von Azure Spring Apps.
Der Plan Standardverbrauch und dediziert gilt ab dem 30. September 2024 als veraltet und wird nach sechs Monaten vollständig eingestellt. Es wird empfohlen, auf Azure Container Apps umzustellen. Weitere Informationen finden Sie unter Migrieren des Plans „Standardverbrauch und dediziert“ von Azure Spring Apps zu Azure Container Apps.
Dieser Artikel gilt für:❌ Basic/Standard ✔️ Enterprise
In diesem Artikel erfahren Sie, wie Sie Ihre statischen Dateien mit dem Tanzu Web Servers Buildpack in einer Azure Spring Apps-Enterprise-Planinstanz bereitstellen. Dieser Ansatz ist nützlich, wenn Sie über Anwendungen verfügen, die ausschließlich statische Dateien wie HTML, CSS oder Front-End-Anwendungen enthalten, die mit dem JavaScript-Framework Ihrer Wahl erstellt wurden. Sie können diese Anwendungen direkt mit einem automatisch konfigurierten Webserver (HTTPD und NGINX) bereitstellen, um diese Ressourcen zu bedienen.
Voraussetzungen
- Eine bereits bereitgestellte Azure Spring Apps Enterprise-Planinstanz. Weitere Informationen finden Sie unter Schnellstart: Erstellen und Bereitstellen von Anwendungen in Azure Spring Apps mit dem Enterprise Plan.
- Mindestens eine Anwendung, die in Azure Spring Apps ausgeführt wird.
- Azure CLI: Version 2.45.0 oder höher.
- Ihre statischen Dateien oder die dynamische Front-End-Anwendung, z. B. eine React-App.
Bereitstellen Ihrer statischen Dateien
Hinweis
Dieser Artikel befasst sich mit der Beschreibung von Bereitstellungskonfigurationen und der Problembehandlung speziell für die Bereitstellung statischer Webdateien. Informationen zu den allgemeinen Build- und Bereitstellungsszenarien für den Azure Springs Apps-Enterprise-Plan finden Sie im Abschnitt Bedarfsgesteuerte Nutzung des Builddiensts unter Verwenden von Tanzu Build Service sowie unter Bereitstellen von mehrsprachigen Apps im Azure Spring Apps-Enterprise-Plan.
Sie können statische Dateien in Azure Spring Apps mithilfe von NGINX- oder HTTPD-Webservern wie folgt bereitstellen:
- Sie können statische Dateien direkt bereitstellen. Azure Spring Apps konfiguriert den angegebenen Webserver automatisch für die Bereitstellung der statischen Dateien.
- Sie können Ihre Front-End-Anwendung im JavaScript-Framework Ihrer Wahl erstellen und dann Ihre dynamische Front-End-Anwendung aus Quellcode bereitstellen. Azure Spring Apps erstellt Ihre App in statischen Inhalten und verwendet den konfigurierten Webserver, um die statischen Dateien bereitzustellen.
Sie können auch eine Serverkonfigurationsdatei erstellen, um den Webserver anzupassen.
Bereitstellungsbeispiele
Die Azure CLI-Beispiele in diesem Abschnitt zeigen die Erstellung und Bereitstellung statischer Dateien für zwei Containerregistrierungsszenarien:
- Verwaltete Azure Spring Apps-Containerregistrierung.
- Benutzerverwaltete Containerregistrierung
Direktes Erstellen und Bereitstellen von statischen Dateien
In diesem Beispiel werden statische Dateien direkt mithilfe einer automatisch generierten Standard-Serverkonfigurationsdatei bereitgestellt.
Der folgende Befehl stellt eine statische Datei bereit:
az spring app deploy
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--name <app-name> \
--source-path <path-to-source-code> \
--build-env BP_WEB_SERVER=nginx
Informationen zur Verwendung von Umgebungsvariablen finden Sie im Abschnitt Konfigurieren einer automatisch generierten Serverkonfigurationsdatei.
Erstellen und Bereitstellen Ihrer Front-End-Anwendung als statischer Inhalt
In diesem Beispiel wird eine dynamische Front-End-Anwendung aus Quellcode bereitgestellt.
Der folgende Befehl stellt eine Anwendung bereit:
az spring app deploy \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--name <app-name> \
--source-path <path-to-source-code> \
--build-env BP_WEB_SERVER=nginx BP_NODE_RUN_SCRIPTS=build BP_WEB_SERVER_ROOT=build
Erstellen und Bereitstellen statischer Dateien mithilfe einer benutzerdefinierten Konfigurationsdatei
In diesem Beispiel werden statische Dateien mithilfe einer benutzerdefinierten Konfigurationsdatei bereitgestellt.
Der folgende Befehl stellt eine Anwendung bereit:
az spring app deploy \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--name <app-name> \
--source-path <path-to-source-code>
Weitere Informationen finden Sie in diesem Artikel im Abschnitt Verwenden einer benutzerdefinierten Serverkonfigurationsdatei.
Beispielcode
Hinweis
Der Beispielcode wird von der Open Source-Community für Paketo verwaltet.
Die Beispiele für Paketo-Buildpacks veranschaulichen häufige Anwendungsfälle für verschiedene Anwendungstypen, einschließlich der folgenden Anwendungsfälle:
- Bereitstellen statischer Dateien mit einer Standard-Serverkonfigurationsdatei mithilfe von
BP_WEB_SERVER
zum Auswählen von HTTPD oder NGINX - Verwenden des Node-Paket-Managers zum Erstellen einer React-App in statischen Dateien, die von einem Webserver bereitgestellt werden können. Führen Sie die folgenden Schritte durch:
- Definieren Sie ein Skript unter der
scripts
-Eigenschaft der Datei package.json, die Ihre produktionsbereiten statischen Ressourcen erstellt. Für React ist diesbuild
. - Ermitteln Sie, wo statische Ressourcen nach der Ausführung des Buildskripts gespeichert werden. Für React werden statische Ressourcen standardmäßig unter
./build
gespeichert. - Legen Sie
BP_NODE_RUN_SCRIPTS
auf den Namen des Buildskripts fest. - Legen Sie
BP_WEB_SERVER_ROOT
auf das Buildausgabeverzeichnis fest.
- Definieren Sie ein Skript unter der
- Bereitstellen statischer Dateien mit Ihrer eigenen Serverkonfigurationsdatei mithilfe von HTTPD oder NGINX
Konfigurieren einer automatisch generierten Serverkonfigurationsdatei
Sie können Umgebungsvariablen verwenden, um die automatisch generierte Serverkonfigurationsdatei zu ändern. Die folgende Tabelle enthält unterstützte Umgebungsvariablen:
Umgebungsvariable | Unterstützter Wert | Beschreibung |
---|---|---|
BP_WEB_SERVER |
nginx oder httpd | Gibt den Webservertyp an, entweder nginx für NGINX oder httpd für Apache HTTP Server. Erforderlich, wenn die automatisch generierte Serverkonfigurationsdatei verwendet wird |
BP_WEB_SERVER_ROOT |
Ein absoluter Dateipfad oder ein Dateipfad relativ zu /workspace. | Legt das Stammverzeichnis für die statischen Dateien fest. Der Standardwert ist public . |
BP_WEB_SERVER_ENABLE_PUSH_STATE |
true oder false | Aktiviert das Pushzustandsrouting für Ihre Anwendung. Unabhängig von der angeforderten Route wird index.html immer bedient. Nützlich für Single-Page-Webanwendungen. |
BP_WEB_SERVER_FORCE_HTTPS |
true oder false | Erzwingt HTTPS für Serververbindungen, indem alle Anforderungen zur Verwendung des HTTPS-Protokolls umgeleitet werden. |
Folgende Umgebungsvariablen werden nicht unterstützt:
BP_LIVE_RELOAD_ENABLED
BP_NGINX_VERSION
BP_HTTPD_VERSION
Verwenden einer benutzerdefinierten Serverkonfigurationsdatei
Sie können den Webserver mithilfe einer benutzerdefinierten Serverkonfigurationsdatei konfigurieren. Die folgende Tabelle zeigt den Pfad zur Konfigurationsdatei:
Webserver | Standardpfad der Konfigurationsdatei | Anpassen des Pfads der Serverkonfigurationsdatei |
---|---|---|
nginx | nginx.conf im Stammpfad des Quellcodes | Verwenden Sie die Umgebungsvariable BP_NGINX_CONF_LOCATION , um den Namen der Konfigurationsdatei anzugeben. Platzieren Sie die Datei im Stammpfad des Quellcodes. |
httpd | httpd.conf im Stammpfad des Quellcodes | Nicht unterstützt. |
Ihre Konfigurationsdatei muss die in der folgenden Tabelle beschriebenen Einschränkungen einhalten.
Konfiguration | Beschreibung | Nginx-Konfiguration | Httpd-Konfiguration |
---|---|---|---|
Lauschport | Der Webserver muss an Port 8080 lauschen. Der Dienst überprüft den Port bezüglich TCP auf Bereitschaft und Aktivität. Sie müssen die vorlagenbasierte Variable PORT in der Konfigurationsdatei verwenden. Die entsprechende Portnummer wird eingefügt, wenn der Webserver gestartet wird. |
listen {{PORT}} |
Listen "${PORT}" |
Protokollpfad | Konfigurationsprotokollpfad zur Konsole | access_log /dev/stdout , error_log stderr |
ErrorLog /proc/self/fd/2 |
Dateipfad mit Schreibberechtigung | Dem Webserver wird die Schreibberechtigung für das Verzeichnis /tmp erteilt. Das Konfigurieren des vollständigen Pfads erfordert Schreibberechtigungen im Verzeichnis /tmp. | Beispiel: client_body_temp_path /tmp/client_body_temp | |
Maximal zulässige Textgröße der Clientanforderung | Der Webserver befindet sich hinter dem Gateway. Die maximale zulässige Textgröße der Clientanforderung ist im Gateway auf 500 m festgelegt, und der Wert für den Webserver muss kleiner als 500 m sein. | client_max_body_size muss kleiner als 500 m sein. |
LimitRequestBody muss kleiner als 500 m sein. |
Buildpackbindungen
Die Bereitstellung statischer Dateien im Azure Spring Apps-Enterprise-Plan unterstützt die Dynatrace-Buildpack-Bindung. Die htpasswd
-Buildpack-Bindung wird nicht unterstützt.
Weitere Informationen finden Sie unter Konfigurieren von APM-Integrations- und Zertifizierungsstellenzertifikaten.
Allgemeine Build- und Bereitstellungsfehler
Die Bereitstellung statischer Dateien in einer Azure Spring Apps-Enterprise-Instanz kann zu den folgenden allgemeinen Buildfehlern führen:
ERROR: No buildpack groups passed detection.
ERROR: Please check that you're running against the correct path.
ERROR: failed to detect: no buildpacks participating
Die Grundursache für diese Fehler ist, dass der Webservertyp nicht angegeben ist. Um diese Fehler zu beheben, legen Sie die Umgebungsvariable BP_WEB_SERVER
auf nginx oder httpd fest.
In der folgenden Tabelle sind allgemeine Bereitstellungsfehler beschrieben, die auftreten können, wenn Sie statische Dateien in Azure Spring Apps Enterprise bereitstellen.
Fehlermeldung | Grundursache | Lösung |
---|---|---|
112404: Exit code 0: purposely stopped, please refer to https://aka.ms/exitcode |
Der Webserver konnte nicht gestartet werden. | Überprüfen Sie Ihre Serverkonfigurationsdatei, um festzustellen, ob ein Konfigurationsfehler vorliegt. Überprüfen Sie dann, ob Ihre Konfigurationsdatei die Einschränkungen einhält, die im Abschnitt Verwenden einer benutzerdefinierten Serverkonfigurationsdatei beschrieben sind. |
mkdir() "/var/client_body_temp" failed (13: Permission denied) |
Der Webserver hat keine Schreibberechtigung für den angegebenen Pfad. | Konfigurieren Sie den Pfad unter dem Verzeichnis /tmp. Beispiel: /tmp/client_body_temp. |