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
- Już aprowizowane wystąpienie planu Usługi Azure Spring Apps Enterprise. Aby uzyskać więcej informacji, zobacz Szybki start: tworzenie i wdrażanie aplikacji w usłudze Azure Spring Apps przy użyciu planu Enterprise.
- Co najmniej jedna aplikacja działająca w usłudze Azure Spring Apps.
- Interfejs wiersza polecenia platformy Azure w wersji 2.45.0 lub nowszej.
- Pliki statyczne lub dynamiczna aplikacja frontonu — na przykład aplikacja React.
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.
- Rejestr kontenerów zarządzanych usługi Azure Spring Apps
- Rejestr kontenerów zarządzanych przez użytkownika
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.
- Rejestr kontenerów zarządzanych usługi Azure Spring Apps
- Rejestr kontenerów zarządzanych przez użytkownika
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.
- Rejestr kontenerów zarządzanych usługi Azure Spring Apps
- Rejestr kontenerów zarządzanych przez użytkownika
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:
- 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 tobuild
. - Dowiedz się, gdzie są przechowywane zasoby statyczne po uruchomieniu skryptu kompilacji. W przypadku platformy React zasoby statyczne są domyślnie przechowywane.
./build
- Ustaw
BP_NODE_RUN_SCRIPTS
nazwę skryptu kompilacji. - Ustaw
BP_WEB_SERVER_ROOT
na katalog wyjściowy kompilacji.
- Zdefiniuj skrypt we
- 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. |