Bereitstellen statischer Webdateien
Hinweis
Azure Spring Apps ist der neue Name für den Azure Spring Cloud-Dienst. Obwohl der Dienst umbenannt wurde, wird der alte Name noch an einigen Stellen verwendet, solange wir Ressourcen wie Screenshots, Videos und Diagramme aktualisieren.
Dieser Artikel gilt für:❌ Basic/Standard ✔️ Enterprise
In diesem Artikel erfahren Sie, wie Sie Ihre statischen Dateien mithilfe des Buildpacks tanzu Web Servers 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 in der Schnellstartanleitung: Erstellen und Bereitstellen von Apps 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 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 "Build service on Demand" des Use Tanzu Build Service und how to deploy polyglot apps.To understand the general build scenarios for the Azure Springs Apps Enterprise plan, see the Build service on demand section of Use Tanzu Build Service and How to deploy polyglot apps.
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 ihren konfigurierten Webserver, um die statischen Dateien zu bedienen.
Sie können auch eine Serverkonfigurationsdatei erstellen, um den Webserver anzupassen.
Bereitstellungsbeispiele
Die Azure CLI-Beispiele in diesem Abschnitt zeigen das Erstellen und Bereitstellen statischer Dateien für zwei Containerregistrierungsszenarien:
- Verwaltete Azure Spring Apps-Containerregistrierung.
- Benutzerverwaltete Containerregistrierung.
Erstellen und Bereitstellen statischer Dateien direkt
In diesem Beispiel werden statische Dateien direkt mithilfe einer automatisch generierten Standardserverkonfigurationsdatei 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 angepassten Konfigurationsdatei
In diesem Beispiel werden statische Dateien mithilfe einer angepassten Serverkonfigurationsdatei 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 im Abschnitt "Verwenden einer benutzerdefinierten Serverkonfigurationsdatei " in diesem Artikel.
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 von Node Paket-Manager zum Erstellen einer React-App in statische Dateien, die ein Webserver bereitstellen kann. Führen Sie die folgenden Schritte aus:
- 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 bei Verwendung der automatisch generierten Serverkonfigurationsdatei. |
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 der Konfigurationsdatei:
Webserver | Standardkonfigurationsdateipfad | So passen Sie den Pfad der Serverkonfigurationsdatei an |
---|---|---|
nginx | nginx.conf unter dem Stammpfad Des Quellcodes. | Verwenden Sie die Umgebungsvariable BP_NGINX_CONF_LOCATION , um den Namen der Konfigurationsdatei anzugeben. Platzieren Sie die Datei unter dem Stammpfad des Quellcodes. |
httpd | httpd.conf unter dem Stammpfad Des Quellcodes. | Wird 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 akzeptierte Textgröße der Clientanforderung ist auf 500 m im Gateway festgelegt, und der Wert für den Webserver muss kleiner als 500 m sein. | client_max_body_size sollte weniger als 500 m sein. |
LimitRequestBody sollte weniger als 500 m sein. |
Buildpackbindungen
Das Bereitstellen 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
Ihre Bereitstellung statischer Dateien in einer Azure Spring Apps Enterprise-Instanz kann die folgenden allgemeinen Buildfehler generieren:
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 werden häufige Bereitstellungsfehler beschrieben, 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 den im Abschnitt "Verwenden einer angepassten Serverkonfigurationsdatei" beschriebenen Einschränkungen entspricht. |
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. |