Udostępnij za pośrednictwem


Wdrażanie internetowych plików statycznych

Uwaga

Plany Podstawowa, Standardowa i Enterprise zostaną wycofane od połowy marca 2025 r. z 3-letnim okresem emerytalnym. Zalecamy przejście do usługi Azure Container Apps. Aby uzyskać więcej informacji, zobacz ogłoszenie o wycofaniu usługi Azure Spring Apps.

Zużycie standardowe i dedykowany plan zostaną wycofane od 30 września 2024 r. z całkowitym zamknięciem po sześciu miesiącach. Zalecamy przejście do usługi Azure Container Apps. Aby uzyskać więcej informacji, zobacz Migrowanie użycia usługi Azure Spring Apps w warstwie Standardowa i dedykowanego planu do usługi Azure Container Apps.

Ten artykuł dotyczy: ❎ Podstawowa/Standardowa ✅ Enterprise

W tym artykule pokazano, jak wdrożyć pliki statyczne w wystąpieniu planu Usługi Azure Spring Apps Enterprise przy użyciu pakietu kompilacji Serwerów sieci Web Tanzu. Takie podejście jest przydatne, jeśli masz aplikacje przeznaczone wyłącznie do przechowywania plików statycznych, takich jak HTML, CSS lub aplikacje frontonu utworzone przy użyciu wybranej platformy JavaScript. Te aplikacje można wdrożyć bezpośrednio przy użyciu automatycznie skonfigurowanego serwera internetowego (HTTPD i NGINX), aby obsługiwać te zasoby.

Wymagania wstępne

Wdrażanie plików statycznych

Uwaga

Ten artykuł koncentruje się na opisywaniu konfiguracji wdrażania i rozwiązywaniu problemów specyficznych dla internetowego wdrożenia plików statycznych. Aby zrozumieć ogólne scenariusze kompilacji i wdrażania dla planu Usługi Azure Springs Apps Enterprise, zobacz sekcję Tworzenie usługi na żądanie w temacie Korzystanie z usługi Tanzu Build Service i Jak wdrażać aplikacje wielolotowe.

Pliki statyczne można wdrożyć w usłudze Azure Spring Apps przy użyciu serwerów internetowych NGINX lub HTTPD w następujący sposób:

  • Pliki statyczne można wdrażać bezpośrednio. Usługa Azure Spring Apps automatycznie konfiguruje określony serwer internetowy do obsługi plików statycznych.
  • Aplikację frontonu można utworzyć w wybranej strukturze języka JavaScript, a następnie wdrożyć dynamiczną aplikację frontonu na podstawie kodu źródłowego. Usługa Azure Spring Apps kompiluje aplikację w zawartość statyczną i używa skonfigurowanego serwera internetowego do obsługi plików statycznych.

Możesz również utworzyć plik konfiguracji serwera w celu dostosowania serwera internetowego.

Przykłady wdrożeń

Przykłady interfejsu wiersza polecenia platformy Azure w tej sekcji przedstawiają kompilowanie i wdrażanie plików statycznych dla dwóch scenariuszy rejestru kontenerów:

  • Zarządzany rejestr kontenerów usługi Azure Spring Apps.
  • Rejestr kontenerów zarządzanych przez użytkownika.

Bezpośrednie kompilowanie i wdrażanie plików statycznych

W tym przykładzie pliki statyczne są wdrażane bezpośrednio przy użyciu automatycznie wygenerowanego domyślnego pliku konfiguracji serwera.

Następujące polecenie wdraża plik statyczny:

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

Aby uzyskać informacje na temat używania zmiennych środowiskowych, zobacz sekcję Konfigurowanie automatycznie wygenerowanego pliku konfiguracji serwera.

Kompilowanie i wdrażanie aplikacji frontonu jako zawartości statycznej

W tym przykładzie jest wdrażana dynamiczna aplikacja frontonu z kodu źródłowego.

Następujące polecenie wdraża aplikację:

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

Kompilowanie i wdrażanie plików statycznych przy użyciu dostosowanego pliku konfiguracji

W tym przykładzie są wdrażane pliki statyczne przy użyciu dostosowanego pliku konfiguracji serwera.

Następujące polecenie wdraża aplikację:

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

Aby uzyskać więcej informacji, zobacz sekcję Use a customized server configuration file (Używanie dostosowanego pliku konfiguracji serwera) w tym artykule.

Przykładowy kod

Uwaga

Przykładowy kod jest obsługiwany przez społeczność open source Paketo.

Przykłady kompilacji Paketo pokazują typowe przypadki użycia dla kilku różnych typów aplikacji, w tym następujące przypadki użycia:

  • Obsługa plików statycznych przy użyciu domyślnego pliku konfiguracji serwera przy użyciu BP_WEB_SERVER polecenia , aby wybrać protokół HTTPD lub NGINX.
  • Używanie Menedżer pakietów Node do kompilowania aplikacji React w plikach statycznych, które może obsługiwać serwer internetowy. Wykonaj następujące czynności:
    1. Zdefiniuj skrypt we scripts właściwości pliku package.json , który kompiluje zasoby statyczne gotowe do użycia w środowisku produkcyjnym. W przypadku platformy React jest to build.
    2. Dowiedz się, gdzie są przechowywane zasoby statyczne po uruchomieniu skryptu kompilacji. W przypadku platformy React zasoby statyczne są domyślnie przechowywane../build
    3. Ustaw BP_NODE_RUN_SCRIPTS nazwę skryptu kompilacji.
    4. Ustaw BP_WEB_SERVER_ROOT na katalog wyjściowy kompilacji.
  • Obsługa plików statycznych przy użyciu własnego pliku konfiguracji serwera przy użyciu protokołu HTTPD lub NGINX.

Konfigurowanie automatycznie wygenerowanego pliku konfiguracji serwera

Zmienne środowiskowe umożliwiają modyfikowanie automatycznie wygenerowanego pliku konfiguracji serwera. W poniższej tabeli przedstawiono obsługiwane zmienne środowiskowe.

Zmienna środowiskowa Obsługiwana wartość opis
BP_WEB_SERVER nginx lub httpd Określa typ serwera internetowego nginx dla serwera Nginx lub httpd dla serwera HTTP Apache. Wymagane w przypadku korzystania z automatycznie wygenerowanego pliku konfiguracji serwera.
BP_WEB_SERVER_ROOT Bezwzględna ścieżka pliku lub ścieżka pliku względem /workspace. Ustawia katalog główny dla plików statycznych. Wartość domyślna to public.
BP_WEB_SERVER_ENABLE_PUSH_STATE prawda lub fałsz Włącza routing stanu wypychania dla aplikacji. Niezależnie od żądanej trasy, index.html jest zawsze obsługiwana. Przydatne w przypadku jednostronicowych aplikacji internetowych.
BP_WEB_SERVER_FORCE_HTTPS prawda lub fałsz Wymusza protokół HTTPS dla połączeń serwera, przekierowując wszystkie żądania do korzystania z protokołu HTTPS.

Następujące zmienne środowiskowe nie są obsługiwane.

  • BP_LIVE_RELOAD_ENABLED
  • BP_NGINX_VERSION
  • BP_HTTPD_VERSION

Używanie dostosowanego pliku konfiguracji serwera

Serwer internetowy można skonfigurować przy użyciu dostosowanego pliku konfiguracji serwera. W poniższej tabeli przedstawiono ścieżkę pliku konfiguracji:

Serwer sieci Web Domyślna ścieżka pliku konfiguracji Jak dostosować ścieżkę pliku konfiguracji serwera
nginx nginx.conf pod ścieżką główną kodu źródłowego. Użyj zmiennej środowiskowej BP_NGINX_CONF_LOCATION , aby określić nazwę pliku konfiguracji. Umieść plik w ścieżce głównej kodu źródłowego.
httpd httpd.conf pod ścieżką główną kodu źródłowego. Nieobsługiwane.

Plik konfiguracji musi być zgodny z ograniczeniami opisanymi w poniższej tabeli.

Konfigurowanie opis Konfiguracja serwera Nginx Konfiguracja httpd
Port nasłuchiwania Serwer sieci Web musi nasłuchiwać na porcie 8080. Usługa sprawdza port w protokole TCP pod kątem gotowości i tego, czy jest aktywna. Musisz użyć zmiennej PORT szablonu w pliku konfiguracji. Odpowiedni numer portu jest wstrzykiwany po uruchomieniu serwera internetowego. listen {{PORT}} Listen "${PORT}"
Ścieżka dziennika Ścieżka dziennika konfiguracji do konsoli programu . access_log /dev/stdout, error_log stderr ErrorLog /proc/self/fd/2
Ścieżka pliku z uprawnieniem do zapisu Serwer sieci Web ma przyznane uprawnienie do zapisu w katalogu /tmp . Skonfigurowanie pełnej ścieżki wymaga uprawnienia do zapisu w katalogu /tmp . Na przykład: client_body_temp_path /tmp/client_body_temp
Maksymalny akceptowany rozmiar treści żądania klienta Serwer sieci Web znajduje się za bramą. Maksymalny akceptowany rozmiar treści żądania klienta wynosi 500 m w bramie, a wartość serwera internetowego musi być mniejsza niż 500 m. client_max_body_size powinna być mniejsza niż 500 m. LimitRequestBody powinna być mniejsza niż 500 m.

Powiązania pakietu BuildPack

Wdrażanie plików statycznych w planie Usługi Azure Spring Apps Enterprise obsługuje powiązanie pakietu kompilacji Dynatrace. htpasswd Powiązanie pakietu buildpack nie jest obsługiwane.

Aby uzyskać więcej informacji, zobacz How to configure APM integration and CA certificates (Jak skonfigurować integrację aPM i certyfikaty urzędu certyfikacji).

Typowe błędy kompilacji i wdrażania

Wdrożenie plików statycznych w wystąpieniu usługi Azure Spring Apps Enterprise może wygenerować następujące typowe błędy kompilacji:

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

Główną przyczyną tych błędów jest to, że typ serwera internetowego nie jest określony. Aby usunąć te błędy, ustaw zmienną środowiskową BP_WEB_SERVER na nginx lub httpd.

W poniższej tabeli opisano typowe błędy wdrażania podczas wdrażania plików statycznych w usłudze Azure Spring Apps Enterprise.

Komunikat o błędzie Główna przyczyna Rozwiązanie
112404: Exit code 0: purposely stopped, please refer to https://aka.ms/exitcode Nie można uruchomić serwera internetowego. Zweryfikuj plik konfiguracji serwera, aby sprawdzić, czy wystąpił błąd konfiguracji. Następnie sprawdź, czy plik konfiguracji jest zgodny z ograniczeniami opisanymi w sekcji Używanie dostosowanego pliku konfiguracji serwera.
mkdir() "/var/client_body_temp" failed (13: Permission denied) Serwer internetowy nie ma uprawnień do zapisu do określonej ścieżki. Skonfiguruj ścieżkę w katalogu /tmp, na przykład: /tmp/client_body_temp.

Następne kroki