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

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:
    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 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.

Nächste Schritte