Развертывание статических веб-файлов

Примечание.

Azure Spring Apps — это новое название службы Azure Spring Cloud. Старое название будет еще некоторое время встречаться в наших материалах, пока мы не обновим ресурсы, такие как снимки экрана, видео и схемы.

Эта статья относится к:❌ Basic/Standard ✔️ Enterprise

В этой статье показано, как развернуть статические файлы в экземпляре плана Azure Spring Apps Enterprise с помощью пакета сборки Tanzu Web Servers. Этот подход полезен, если у вас есть приложения, которые предназначены исключительно для хранения статических файлов, таких как HTML, CSS или интерфейсные приложения, созданные с помощью выбранной платформы JavaScript. Вы можете напрямую развернуть эти приложения с автоматически настроенным веб-сервером (HTTPD и NGINX) для обслуживания этих ресурсов.

Необходимые компоненты

Развертывание статических файлов

Примечание.

В этой статье рассматривается описание конфигураций развертывания и устранение неполадок, относящихся к развертыванию статических файлов в Интернете. Общие сценарии сборки и развертывания для плана Azure Springs Apps Enterprise см. в разделе "Сборка по запросу " раздела "Использование службы сборки Tanzu" и "Как развернуть приложения polyglot".

Статические файлы можно развернуть в Azure Spring Apps с помощью веб-серверов NGINX или HTTPD следующим образом:

  • Статические файлы можно развертывать напрямую. Azure Spring Apps автоматически настраивает указанный веб-сервер для обслуживания статических файлов.
  • Вы можете создать интерфейсное приложение в выбранной платформе JavaScript, а затем развернуть динамическое интерфейсное приложение из исходного кода. Azure Spring Apps создает приложение в статическое содержимое и использует настроенный веб-сервер для обслуживания статических файлов.

Вы также можете создать файл конфигурации сервера для настройки веб-сервера.

Примеры развертывания

В примерах Azure CLI в этом разделе показано создание и развертывание статических файлов для двух сценариев реестра контейнеров:

  • Управляемый реестр контейнеров Azure Spring Apps.
  • Реестр управляемых пользователем контейнеров.

Создание и развертывание статических файлов напрямую

В этом примере статические файлы развертываются непосредственно с помощью файла конфигурации сервера по умолчанию.

Следующая команда развертывает статический файл:

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

Сведения об использовании переменных среды см. в разделе "Настройка файла конфигурации сервера с автогенерированным сервером ".

Создание и развертывание интерфейсного приложения в виде статического содержимого

В этом примере развертывается динамическое интерфейсное приложение из исходного кода.

Следующая команда развертывает приложение:

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

Создание и развертывание статических файлов с помощью настраиваемого файла конфигурации

В этом примере развертываются статические файлы с помощью настраиваемого файла конфигурации сервера.

Следующая команда развертывает приложение:

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

Дополнительные сведения см. в разделе "Использование настраиваемого файла конфигурации сервера" этой статьи.

Пример кода

Примечание.

Пример кода поддерживается сообществом Paketo открытый код.

Примеры сборок Paketo демонстрируют распространенные варианты использования для нескольких различных типов приложений, включая следующие варианты использования:

  • Обслуживание статических файлов с помощью файла конфигурации сервера по умолчанию с помощью BP_WEB_SERVER HTTPD или NGINX.
  • Использование узла диспетчер пакетов для создания приложения React в статические файлы, которые может обслуживать веб-сервер. Выполните следующие действия.
    1. Определите скрипт в scripts свойстве файла package.json , который создает готовые к работе статические ресурсы. Для React это build.
    2. Узнайте, где хранятся статические ресурсы после выполнения скрипта сборки. Для React статические ресурсы хранятся ./build по умолчанию.
    3. Задайте BP_NODE_RUN_SCRIPTS имя скрипта сборки.
    4. Задайте BP_WEB_SERVER_ROOT выходной каталог сборки.
  • Обслуживание статических файлов с собственным файлом конфигурации сервера с помощью HTTPD или NGINX.

Настройка файла конфигурации сервера с автоматическим созданием

Переменные среды можно использовать для изменения файла конфигурации сервера, созданного автоматически. В следующей таблице показаны поддерживаемые переменные среды.

Переменная среды Поддерживаемое значение Description
BP_WEB_SERVER nginx или httpd Указывает тип веб-сервера, nginx для Nginx или httpd для СЕРВЕРА Apache HTTP. Требуется при использовании файла конфигурации сервера с автоматическим созданием.
BP_WEB_SERVER_ROOT Абсолютный путь к файлу или путь к файлу относительно /workspace. Задает корневой каталог для статических файлов. Значение по умолчанию — public.
BP_WEB_SERVER_ENABLE_PUSH_STATE true или false Включает маршрутизацию состояния push-уведомлений для приложения. Независимо от запрошенного маршрута index.html всегда обслуживается. Полезно для одностраничных веб-приложений.
BP_WEB_SERVER_FORCE_HTTPS true или false Принудительно применяет ПРОТОКОЛ HTTPS для подключений к серверу, перенаправляя все запросы на использование протокола HTTPS.

Следующие переменные среды не поддерживаются.

  • BP_LIVE_RELOAD_ENABLED
  • BP_NGINX_VERSION
  • BP_HTTPD_VERSION

Использование настраиваемого файла конфигурации сервера

Веб-сервер можно настроить с помощью настраиваемого файла конфигурации сервера. В следующей таблице показан путь к файлу конфигурации:

Веб-сервер Путь к файлу конфигурации по умолчанию Настройка пути к файлу конфигурации сервера
nginx nginx.conf под корневым путем исходного кода. Используйте переменную BP_NGINX_CONF_LOCATION среды, чтобы указать имя файла конфигурации. Поместите файл в корневой путь исходного кода.
httpd httpd.conf под корневым путем исходного кода. Не поддерживается.

Файл конфигурации должен соответствовать ограничениям, описанным в следующей таблице.

Настройка Description Конфигурация Nginx Конфигурация httpd
Прослушивание порта Веб-сервер должен прослушивать порт 8080. Служба проверка порт на TCP для готовности и является ли он активным. В файле конфигурации необходимо использовать шаблонную переменную PORT . Соответствующий номер порта внедряется при запуске веб-сервера. listen {{PORT}} Listen "${PORT}"
путь к журналу. Путь к журналу конфигурации в консоль. access_log /dev/stdout, error_log stderr ErrorLog /proc/self/fd/2
Путь к файлу с разрешением записи Веб-сервер предоставляет разрешение на запись в каталог /tmp . Для настройки полного пути требуется разрешение на запись в каталоге /tmp . Например: client_body_temp_path /tmp/client_body_temp
Максимальный допустимый размер текста запроса клиента Веб-сервер находится за шлюзом. Максимальный допустимый размер текста клиентского запроса равен 500 м в шлюзе, а значение веб-сервера должно быть меньше 500 м. client_max_body_size должно быть меньше 500 м. LimitRequestBody должно быть меньше 500 м.

Привязки пакета сборки

Развертывание статических файлов в плане Azure Spring Apps Enterprise поддерживает привязку пакета сборки Dynatrace. Привязка htpasswd buildpack не поддерживается.

Дополнительные сведения см. в разделе "Настройка сертификатов интеграции APM и ЦС".

Распространенные ошибки сборки и развертывания

Развертывание статических файлов в экземпляре Azure Spring Apps Enterprise может привести к следующим распространенным ошибкам сборки:

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

Первопричиной этих ошибок является то, что тип веб-сервера не указан. Чтобы устранить эти ошибки, задайте для переменной BP_WEB_SERVERсреды значение nginx или httpd.

В следующей таблице описываются распространенные ошибки развертывания при развертывании статических файлов в Azure Spring Apps Enterprise.

Сообщение об ошибке Основная причина Решение
112404: Exit code 0: purposely stopped, please refer to https://aka.ms/exitcode Не удалось запустить веб-сервер. Проверьте файл конфигурации сервера, чтобы узнать, возникает ли ошибка конфигурации. Затем проверка соответствует ли файл конфигурации ограничениям, описанным в разделе "Использование настраиваемого файла конфигурации сервера".
mkdir() "/var/client_body_temp" failed (13: Permission denied) У веб-сервера нет разрешения на запись в указанный путь. Настройте путь в каталоге /tmp; например: /tmp/client_body_temp.

Следующие шаги