Freigeben über


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

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:
    1. Definieren Sie ein Skript unter der scripts-Eigenschaft der Datei package.json, die Ihre produktionsbereiten statischen Ressourcen erstellt. Für React ist dies build.
    2. Ermitteln Sie, wo statische Ressourcen nach der Ausführung des Buildskripts gespeichert werden. Für React werden statische Ressourcen standardmäßig unter ./build gespeichert.
    3. Legen Sie BP_NODE_RUN_SCRIPTS auf den Namen des Buildskripts fest.
    4. Legen Sie BP_WEB_SERVER_ROOT auf das Buildausgabeverzeichnis fest.
  • 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.

Nächste Schritte