Развертывание статических веб-файлов
Примечание.
Планы "Базовый", "Стандартный" и "Корпоративный" будут устарели начиная с середины марта 2025 г. с 3-летнего периода выхода на пенсию. Рекомендуется перейти в приложения контейнеров Azure. Дополнительные сведения см. в объявлении о выходе на пенсию в Azure Spring Apps.
Стандартный план потребления и выделенного плана будет устарел с 30 сентября 2024 г. с полным завершением работы после шести месяцев. Рекомендуется перейти в приложения контейнеров Azure. Дополнительные сведения см. в статье "Миграция потребления Azure Spring Apps Standard" и выделенного плана в приложения контейнеров Azure.
Эта статья относится к:❌ Basic/Standard ✔️ Enterprise
В этой статье показано, как развернуть статические файлы в экземпляре плана Azure Spring Apps Enterprise с помощью пакета сборки Tanzu Web Servers. Этот подход полезен, если у вас есть приложения, которые предназначены исключительно для хранения статических файлов, таких как HTML, CSS или интерфейсные приложения, созданные с помощью выбранной платформы JavaScript. Вы можете напрямую развернуть эти приложения с автоматически настроенным веб-сервером (HTTPD и NGINX) для обслуживания этих ресурсов.
Необходимые компоненты
- Уже подготовленный экземпляр плана Azure Spring Apps Enterprise. Дополнительные сведения см . в кратком руководстве по созданию и развертыванию приложений в Azure Spring Apps с помощью плана Enterprise.
- Одно или несколько приложений, запущенных в Azure Spring Apps.
- Azure CLI версии 2.45.0 или более поздней.
- Статические файлы или динамическое интерфейсное приложение, например приложение React.
Развертывание статических файлов
Примечание.
В этой статье рассматривается описание конфигураций развертывания и устранение неполадок, относящихся к развертыванию статических файлов в Интернете. Общие сценарии сборки и развертывания для плана 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 в статические файлы, которые может обслуживать веб-сервер. Выполните следующие действия.
- Определите скрипт в
scripts
свойстве файла package.json , который создает готовые к работе статические ресурсы. Для React этоbuild
. - Узнайте, где хранятся статические ресурсы после выполнения скрипта сборки. Для React статические ресурсы хранятся
./build
по умолчанию. - Задайте
BP_NODE_RUN_SCRIPTS
имя скрипта сборки. - Задайте
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. |