Statische webbestanden implementeren

Notitie

Azure Spring Apps is de nieuwe naam voor de Azure Spring Cloud-service. Hoewel de service een nieuwe naam heeft, ziet u de oude naam op sommige plaatsen terwijl we werken aan het bijwerken van assets, zoals schermopnamen, video's en diagrammen.

Dit artikel is van toepassing op:❌ Basic/Standard ✔️ Enterprise

In dit artikel wordt beschreven hoe u uw statische bestanden implementeert in een Azure Spring Apps Enterprise-planexemplaren met behulp van het Tanzu-webservers-buildpack. Deze benadering is handig als u toepassingen hebt die uitsluitend zijn bedoeld voor het opslaan van statische bestanden, zoals HTML, CSS of front-endtoepassingen die zijn gebouwd met het JavaScript-framework van uw keuze. U kunt deze toepassingen rechtstreeks implementeren met een automatisch geconfigureerde webserver (HTTPD en NGINX) voor deze assets.

Vereisten

Uw statische bestanden implementeren

Notitie

Dit artikel is gericht op het beschrijven van implementatieconfiguraties en het oplossen van problemen die specifiek zijn voor de implementatie van statische webbestanden. Voor meer informatie over de algemene build- en implementatiescenario's voor het Azure Springs Apps Enterprise-plan, raadpleegt u de sectie Build-service op aanvraag van Tanzu Build Service en het implementeren van polyglot-apps.

U kunt statische bestanden implementeren in Azure Spring Apps met behulp van NGINX- of HTTPD-webservers op de volgende manieren:

  • U kunt statische bestanden rechtstreeks implementeren. Azure Spring Apps configureert automatisch de opgegeven webserver voor de statische bestanden.
  • U kunt uw front-endtoepassing maken in het JavaScript-framework van uw keuze en vervolgens uw dynamische front-endtoepassing implementeren vanuit broncode. Azure Spring Apps bouwt uw app in op statische inhoud en gebruikt uw geconfigureerde webserver voor de statische bestanden.

U kunt ook een serverconfiguratiebestand maken om de webserver aan te passen.

Implementatievoorbeelden

In de Azure CLI-voorbeelden in deze sectie ziet u het bouwen en implementeren van statische bestanden voor twee containerregisterscenario's:

  • Door Azure Spring Apps beheerde containerregister.
  • Door de gebruiker beheerde containerregister.

Statische bestanden rechtstreeks bouwen en implementeren

In dit voorbeeld worden statische bestanden rechtstreeks geïmplementeerd met behulp van een automatisch gegenereerd standaardserverconfiguratiebestand.

Met de volgende opdracht wordt een statisch bestand geïmplementeerd:

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

Zie de sectie Een automatisch gegenereerd serverconfiguratiebestand configureren voor informatie over het gebruik van omgevingsvariabelen.

Uw front-endtoepassing bouwen en implementeren als statische inhoud

In dit voorbeeld wordt een dynamische front-endtoepassing geïmplementeerd vanuit broncode.

Met de volgende opdracht wordt een toepassing geïmplementeerd:

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

Statische bestanden bouwen en implementeren met behulp van een aangepast configuratiebestand

In dit voorbeeld worden statische bestanden geïmplementeerd met behulp van een aangepast serverconfiguratiebestand.

Met de volgende opdracht wordt een toepassing geïmplementeerd:

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

Zie de sectie Een aangepast serverconfiguratiebestand van dit artikel gebruiken voor meer informatie.

Voorbeeldcode

Notitie

De voorbeeldcode wordt onderhouden door de opensource-community van Paketo.

De Paketo buildpacks-voorbeelden demonstreren veelvoorkomende use cases voor verschillende toepassingstypen, waaronder de volgende use cases:

  • Statische bestanden verwerken met een standaardserverconfiguratiebestand om BP_WEB_SERVER HTTPD of NGINX te selecteren.
  • Node Pakketbeheer gebruiken om een React-app te bouwen in statische bestanden die een webserver kan leveren. Gebruik de volgende stappen:
    1. Definieer een script onder de scripts eigenschap van het package.json-bestand waarmee uw statische assets worden gebouwd die gereed zijn voor productie. Voor React is het build.
    2. Ontdek waar statische assets worden opgeslagen nadat het buildscript is uitgevoerd. Voor React worden statische assets standaard opgeslagen ./build .
    3. Ingesteld BP_NODE_RUN_SCRIPTS op de naam van het buildscript.
    4. Ingesteld BP_WEB_SERVER_ROOT op de build-uitvoermap.
  • Statische bestanden leveren met uw eigen serverconfiguratiebestand, met behulp van HTTPD of NGINX.

Een automatisch gegenereerd serverconfiguratiebestand configureren

U kunt omgevingsvariabelen gebruiken om het configuratiebestand voor de automatisch gegenereerde server te wijzigen. In de volgende tabel ziet u ondersteunde omgevingsvariabelen.

Omgevingsvariabele Ondersteunde waarde Beschrijving
BP_WEB_SERVER nginx of httpd Hiermee geeft u het webservertype, nginx voor Nginx of httpd voor Apache HTTP-server. Vereist wanneer u het configuratiebestand voor de automatisch gegenereerde server gebruikt.
BP_WEB_SERVER_ROOT Een absoluut bestandspad of een bestandspad ten opzichte van /workspace. Hiermee stelt u de hoofdmap voor de statische bestanden in. De standaardwaarde is public.
BP_WEB_SERVER_ENABLE_PUSH_STATE waar of onwaar Hiermee schakelt u pushstatusroutering voor uw toepassing in. Ongeacht de route die wordt aangevraagd, wordt index.html altijd bediend. Handig voor webtoepassingen met één pagina.
BP_WEB_SERVER_FORCE_HTTPS waar of onwaar Dwingt HTTPS af voor serververbindingen door alle aanvragen om te leiden om het HTTPS-protocol te gebruiken.

De volgende omgevingsvariabelen worden niet ondersteund.

  • BP_LIVE_RELOAD_ENABLED
  • BP_NGINX_VERSION
  • BP_HTTPD_VERSION

Een aangepast serverconfiguratiebestand gebruiken

U kunt webserver configureren met behulp van een aangepast serverconfiguratiebestand. In de volgende tabel ziet u het pad naar het configuratiebestand:

Webserver Standaardpad voor configuratiebestand Pad naar serverconfiguratiebestand aanpassen
nginx nginx.conf onder het hoofdpad van uw broncode. Gebruik de omgevingsvariabele BP_NGINX_CONF_LOCATION om de naam van het configuratiebestand op te geven. Plaats het bestand onder het hoofdpad van uw broncode.
httpd httpd.conf onder het hoofdpad van uw broncode. Wordt niet ondersteund.

Uw configuratiebestand moet voldoen aan de beperkingen die in de volgende tabel worden beschreven.

Configuratie Beschrijving Nginx-configuratie Httpd-configuratie
Luisterpoort Webserver moet luisteren op poort 8080. De service controleert de poort op TCP op gereedheid en of deze live is. U moet de sjabloonvariabele PORT in het configuratiebestand gebruiken. Het juiste poortnummer wordt geïnjecteerd wanneer de webserver wordt gestart. listen {{PORT}} Listen "${PORT}"
Logboekpad Configuratielogboekpad naar de console. access_log /dev/stdout, error_log stderr ErrorLog /proc/self/fd/2
Bestandspad met schrijfmachtiging Aan de webserver wordt schrijfmachtigingen verleend voor de /tmp-map . Voor het configureren van het volledige pad is schrijfmachtiging vereist in de map /tmp . Bijvoorbeeld: client_body_temp_path /tmp/client_body_temp
Maximale geaccepteerde hoofdtekstgrootte van clientaanvraag Webserver bevindt zich achter de gateway. De maximale geaccepteerde bodygrootte van de clientaanvraag is ingesteld op 500 m in de gateway en de waarde voor webserver moet kleiner zijn dan 500 m. client_max_body_size moet kleiner zijn dan 500 m. LimitRequestBody moet kleiner zijn dan 500 m.

Buildpack-bindingen

Het implementeren van statische bestanden in het Azure Spring Apps Enterprise-plan ondersteunt de Dynatrace buildpack-binding. De htpasswd buildpack-binding wordt niet ondersteund.

Zie APM-integratie en CA-certificaten configureren voor meer informatie.

Veelvoorkomende build- en implementatiefouten

Uw implementatie van statische bestanden naar een Azure Spring Apps Enterprise-exemplaar kan de volgende veelvoorkomende buildfouten genereren:

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

De hoofdoorzaak van deze fouten is dat het webservertype niet is opgegeven. Als u deze fouten wilt oplossen, stelt u de omgevingsvariabele BP_WEB_SERVER in op nginx of httpd.

In de volgende tabel worden veelvoorkomende implementatiefouten beschreven wanneer u statische bestanden implementeert in Azure Spring Apps Enterprise.

Foutmelding Hoofdoorzaak Oplossing
112404: Exit code 0: purposely stopped, please refer to https://aka.ms/exitcode De webserver kan niet worden gestart. Valideer uw serverconfiguratiebestand om te zien of er een configuratiefout is. Controleer vervolgens of uw configuratiebestand voldoet aan de beperkingen die worden beschreven in de sectie Een aangepast serverconfiguratiebestand gebruiken.
mkdir() "/var/client_body_temp" failed (13: Permission denied) De webserver heeft geen schrijfmachtiging voor het opgegeven pad. Configureer het pad onder de map /tmp, bijvoorbeeld: /tmp/client_body_temp.

Volgende stappen