Distribuera webbstatiska filer

Kommentar

Azure Spring Apps är det nya namnet på Azure Spring Cloud-tjänsten. Även om tjänsten har ett nytt namn ser du det gamla namnet på vissa platser ett tag medan vi arbetar med att uppdatera tillgångar som skärmbilder, videor och diagram.

Den här artikeln gäller för:❌ Basic/Standard ✔️ Enterprise

Den här artikeln visar hur du distribuerar dina statiska filer till en Azure Spring Apps Enterprise-planinstans med hjälp av Tanzu Web Servers buildpack. Den här metoden är användbar om du har program som enbart används för att lagra statiska filer som HTML, CSS eller klientdelsprogram som skapats med valfri JavaScript-ramverk. Du kan distribuera dessa program direkt med en automatiskt konfigurerad webbserver (HTTPD och NGINX) för att hantera dessa tillgångar.

Förutsättningar

Distribuera dina statiska filer

Kommentar

Den här artikeln fokuserar på att beskriva distributionskonfigurationer och felsökning som är specifika för distribution av statiska webbfiler. Information om de allmänna bygg- och distributionsscenarierna för Azure Springs Apps Enterprise-planen finns i avsnittet Skapa tjänst på begäran i Använda Tanzu Build Service och Så här distribuerar du flerspråkiga appar.

Du kan distribuera statiska filer till Azure Spring Apps med hjälp av NGINX- eller HTTPD-webbservrar på följande sätt:

  • Du kan distribuera statiska filer direkt. Azure Spring Apps konfigurerar automatiskt den angivna webbservern för att hantera de statiska filerna.
  • Du kan skapa ditt klientdelsprogram i valfri JavaScript-ramverk och sedan distribuera ditt dynamiska klientdelsprogram från källkoden. Azure Spring Apps bygger din app till statiskt innehåll och använder din konfigurerade webbserver för att hantera de statiska filerna.

Du kan också skapa en serverkonfigurationsfil för att anpassa webbservern.

Distributionsexempel

Azure CLI-exemplen i det här avsnittet visar hur du skapar och distribuerar statiska filer för två containerregisterscenarier:

  • Azure Spring Apps hanterade containerregister.
  • Användarhanterat containerregister.

Skapa och distribuera statiska filer direkt

Det här exemplet distribuerar statiska filer direkt med hjälp av en automatiskt genererad standardserverkonfigurationsfil.

Följande kommando distribuerar en statisk fil:

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

Information om hur du använder miljövariabler finns i avsnittet Konfigurera en autogenererad serverkonfigurationsfil .

Skapa och distribuera klientdelsprogrammet som statiskt innehåll

Det här exemplet distribuerar ett dynamiskt klientdelsprogram från källkoden.

Följande kommando distribuerar ett program:

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

Skapa och distribuera statiska filer med en anpassad konfigurationsfil

Det här exemplet distribuerar statiska filer med hjälp av en anpassad serverkonfigurationsfil.

Följande kommando distribuerar ett program:

az spring app deploy \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <app-name> \
    --source-path <path-to-source-code>

Mer information finns i avsnittet Använd en anpassad serverkonfigurationsfil i den här artikeln.

Exempelkod

Kommentar

Exempelkoden underhålls av Öppen källkod-communityn Paketo.

Paketo buildpacks-exemplen visar vanliga användningsfall för flera olika programtyper, inklusive följande användningsfall:

  • Hantera statiska filer med en standardserverkonfigurationsfil med hjälp av BP_WEB_SERVER för att välja antingen HTTPD eller NGINX.
  • Använda Node Package Manager för att skapa en React-app i statiska filer som en webbserver kan hantera. Följ stegen nedan:
    1. Definiera ett skript under scripts egenskapen för den package.json fil som skapar dina produktionsklara statiska tillgångar. För React är builddet .
    2. Ta reda på var statiska tillgångar lagras när byggskriptet körs. För React lagras statiska tillgångar i ./build som standard.
    3. Ange BP_NODE_RUN_SCRIPTS namnet på byggskriptet.
    4. Ange BP_WEB_SERVER_ROOT till utdatakatalogen för bygget.
  • Hantera statiska filer med en egen serverkonfigurationsfil med hjälp av antingen HTTPD eller NGINX.

Konfigurera en konfigurationsfil för autogenererad server

Du kan använda miljövariabler för att ändra konfigurationsfilen för den automatiskt genererade servern. I följande tabell visas miljövariabler som stöds.

Miljövariabel Värde som stöds beskrivning
BP_WEB_SERVER nginx eller httpd Anger webbservertypen, antingen nginx för Nginx eller httpd för Apache HTTP-server. Krävs när du använder den autogenererade serverkonfigurationsfilen.
BP_WEB_SERVER_ROOT En absolut filsökväg eller en filsökväg i förhållande till /workspace. Anger rotkatalogen för de statiska filerna. Standardvärdet är public.
BP_WEB_SERVER_ENABLE_PUSH_STATE sant eller falskt Aktiverar routning av push-tillstånd för ditt program. Oavsett vilken väg som begärs hanteras alltid index.html . Användbart för ensideswebbprogram.
BP_WEB_SERVER_FORCE_HTTPS sant eller falskt Framtvingar HTTPS för serveranslutningar genom att omdirigera alla begäranden om att använda HTTPS-protokollet.

Följande miljövariabler stöds inte.

  • BP_LIVE_RELOAD_ENABLED
  • BP_NGINX_VERSION
  • BP_HTTPD_VERSION

Använda en anpassad serverkonfigurationsfil

Du kan konfigurera webbservern med hjälp av en anpassad serverkonfigurationsfil. Följande tabell visar konfigurationsfilens sökväg:

Webbserver Standardsökväg för konfigurationsfil Så här anpassar du sökvägen till serverkonfigurationsfilen
nginx nginx.conf under rotsökvägen för källkoden. Använd miljövariabeln BP_NGINX_CONF_LOCATION för att ange namnet på konfigurationsfilen. Placera filen under rotsökvägen för källkoden.
httpd httpd.conf under rotsökvägen till källkoden. Stöds ej.

Konfigurationsfilen måste följa de begränsningar som beskrivs i följande tabell.

Konfiguration beskrivning Nginx-konfiguration Httpd-konfiguration
Lyssnarport Webbservern måste lyssna på port 8080. Tjänsten kontrollerar porten på TCP för beredskap och om den är live. Du måste använda den mallade variabeln PORT i konfigurationsfilen. Lämpligt portnummer matas in när webbservern startas. listen {{PORT}} Listen "${PORT}"
Loggsökväg Konfigurationsloggsökväg till konsolen. access_log /dev/stdout, error_log stderr ErrorLog /proc/self/fd/2
Filsökväg med skrivbehörighet Webbservern beviljas skrivbehörighet till katalogen /tmp . För att konfigurera den fullständiga sökvägen krävs skrivbehörighet under katalogen /tmp . Exempel: client_body_temp_path /tmp/client_body_temp
Högsta tillåtna brödtextstorlek för klientbegäran Webbservern finns bakom gatewayen. Den maximala tillåtna brödtextstorleken för klientbegäran är inställd på 500 m i gatewayen och värdet för webbservern måste vara mindre än 500 m. client_max_body_size bör vara mindre än 500 m. LimitRequestBody bör vara mindre än 500 m.

Buildpack-bindningar

Distribution av statiska filer till Azure Spring Apps Enterprise-planen stöder Dynatrace buildpack-bindningen. Buildpack-bindningen htpasswd stöds inte.

Mer information finns i Konfigurera APM-integrering och CA-certifikat.

Vanliga bygg- och distributionsfel

Distributionen av statiska filer till en Azure Spring Apps Enterprise-instans kan generera följande vanliga byggfel:

  • ERROR: No buildpack groups passed detection.
  • ERROR: Please check that you're running against the correct path.
  • ERROR: failed to detect: no buildpacks participating

Rotorsaken till dessa fel är att webbservertypen inte har angetts. Lös dessa fel genom att ange miljövariabeln BP_WEB_SERVER till nginx eller httpd.

I följande tabell beskrivs vanliga distributionsfel när du distribuerar statiska filer till Azure Spring Apps Enterprise.

Felmeddelande Rotorsak Lösning
112404: Exit code 0: purposely stopped, please refer to https://aka.ms/exitcode Det gick inte att starta webbservern. Verifiera serverkonfigurationsfilen för att se om det finns ett konfigurationsfel. Kontrollera sedan om konfigurationsfilen överensstämmer med de begränsningar som beskrivs i avsnittet Använd en anpassad serverkonfigurationsfil .
mkdir() "/var/client_body_temp" failed (13: Permission denied) Webbservern har inte skrivbehörighet till den angivna sökvägen. Konfigurera sökvägen under katalogen /tmp, till exempel: /tmp/client_body_temp.

Nästa steg