Distribuera webbstatiska filer
Kommentar
Basic-, Standard- och Enterprise-planerna kommer att vara inaktuella från och med mitten av mars 2025, med en 3-årig pensionsperiod. Vi rekommenderar att du övergår till Azure Container Apps. Mer information finns i meddelandet om azure Spring Apps-pensionering.
Standardförbrukningen och den dedikerade planen kommer att vara inaktuell från och med den 30 september 2024, med en fullständig avstängning efter sex månader. Vi rekommenderar att du övergår till Azure Container Apps. Mer information finns i Migrera Azure Spring Apps Standard-förbrukning och dedikerad plan till Azure Container Apps.
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
- En redan etablerad Azure Spring Apps Enterprise-planinstans. Mer information finns i Snabbstart: Skapa och distribuera appar till Azure Spring Apps med hjälp av Enterprise-planen.
- Ett eller flera program som körs i Azure Spring Apps.
- Azure CLI, version 2.45.0 eller senare.
- Dina statiska filer eller dynamiska klientdelsprogram – till exempel en React-app.
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:
- Definiera ett skript under
scripts
egenskapen för den package.json fil som skapar dina produktionsklara statiska tillgångar. För React ärbuild
det . - Ta reda på var statiska tillgångar lagras när byggskriptet körs. För React lagras statiska tillgångar i
./build
som standard. - Ange
BP_NODE_RUN_SCRIPTS
namnet på byggskriptet. - Ange
BP_WEB_SERVER_ROOT
till utdatakatalogen för bygget.
- Definiera ett skript under
- 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. |