Поделиться через


Настройка службы приложений

В этой статье объясняется, как настроить общие параметры для веб-приложений, мобильного серверного сервера или приложения API. Если вы используете Функции Azure, см. статью Справочник по параметрам приложений для Функций Azure.

Примечание.

Начиная с 1 июня 2024 года только что созданные приложения службы приложений могут создать уникальное имя узла по умолчанию, использующее соглашение об именовании <app-name>-<random-hash>.<region>.azurewebsites.net. Например: myapp-ds27dh7271aah175.westus-01.azurewebsites.net. Существующие имена приложений остаются неизменными.

Дополнительные сведения см. в записи блога о создании веб-приложения с уникальным именем узла по умолчанию.

Настройка параметров приложения

В Службе приложений Azure параметры приложения — это переменные, передаваемые в качестве переменных среды в код приложения. Следующие условия применяются к параметрам приложения:

  • Имена параметров приложения могут содержать только буквы, цифры (0–9), периоды (.) и символы подчеркивания (_).
  • Special characters in the value of an app setting must be escaped as needed by the target operating system.

Например, чтобы задать переменную среды в Службе приложений для Linux со значением "pa$$w0rd\", строка для параметра приложения должна быть "pa\$\$w0rd\\".

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

Для разработчиков ASP.NET и ASP.NET Core настройка параметров приложения в службе приложений похожа на настройку в <appSettings>Web.config или appsettings.json. The values in App Service override the ones in Web.config or appsettings.json. Вы можете сохранить параметры разработки, например локальный пароль MySQL, в Web.config или appsettings.json. Вы можете безопасно хранить рабочие секреты, такие как пароль базы данных Azure MySQL, в службе приложений. Тот же код использует параметры разработки при локальной отладке. Он использует ваши производственные секреты при развертывании приложения в Azure.

Другие языковые стеки получают параметры приложения в качестве переменных среды во время выполнения. Для шагов, относящихся к каждому стеку языков, смотрите:

App settings are always encrypted when they're stored (encrypted at rest).

Примечание.

If you store secrets in app settings, consider using Azure Key Vault references. Если секреты предназначены для подключения к внутренним ресурсам, рассмотрите варианты подключения, которые более безопасны и не требуют секретов. Дополнительные сведения см. в статье "Безопасное подключение к службам и базам данных Azure из Azure App Service".

  1. На портале Azure найдите и выберите Службы приложений, а затем выберите приложение.

  2. В меню слева приложения выберите Параметры, >. Затем выберите параметры приложения.

    Снимок экрана: выбор параметров приложения.

    По умолчанию в целях безопасности значения параметров приложения на портале скрыты. Чтобы увидеть скрытое значение параметра приложения в разделе "Значение", выберите "Показать значение". Чтобы просмотреть скрытые значения всех параметров приложения, выберите "Показать значения".

    Примечание.

    Read/Write user permimssions are required to view this section in the Azure portal. RBAC built-in roles with sufficient permissions are Owner, Contributor, and Website Contributor. The Reader role alone would not be allowed to access this page.

  3. Чтобы добавить новый параметр приложения, нажмите кнопку "Добавить". Чтобы изменить параметр, выберите этот параметр.

  4. В диалоговом окне можно прикрепить параметр к текущему слоту.

    Примечание.

    В службе приложений Linux по умолчанию или пользовательском контейнере Linux любая вложенная структура ключа JSON в имени параметра приложения должна быть настроена по-разному для имени ключа. Замените любое двоеточие (:) двойным подчеркиванием (__). Замените любой период (.) одним подчеркиванием (_). For example, ApplicationInsights:InstrumentationKey needs to be configured in App Service as ApplicationInsights__InstrumentationKey for the key name.

  5. По завершении нажмите кнопку "Применить". Затем выберите Применить на странице переменных среды.

Групповое изменение параметров приложения

  1. Select Advanced edit.
  2. Измените параметры в текстовой области.
  3. По завершении нажмите кнопку ОК. Затем выберите Применить на странице переменных среды.

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

[
  {
    "name": "<key-1>",
    "value": "<value-1>",
    "slotSetting": false
  },
  {
    "name": "<key-2>",
    "value": "<value-2>",
    "slotSetting": false
  },
  ...
]

Настройка строк подключения

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

Примечание.

Рассмотрите варианты подключения, которые более безопасны и не требуют секретов подключения. Дополнительные сведения см. в статье "Безопасное подключение к службам и базам данных Azure из Azure App Service".

Для разработчиков ASP.NET и ASP.NET Core настройка строк подключения в службе приложений похожа на настройку в <connectionStrings>Web.config. The values that you set in App Service override the ones in Web.config. Параметры разработки, например файл базы данных, можно сохранить в Web.config. Вы можете безопасно хранить рабочие секреты, такие как учетные данные базы данных SQL, в службе приложений. Тот же код использует параметры разработки при локальной отладке. Он использует ваши производственные секреты при развертывании приложения в Azure.

Для других стеков языков лучше использовать параметры приложения . Строки подключения требуют специального форматирования в ключах переменных для доступа к значениям.

В одном случае может потребоваться использовать строки подключения вместо параметров приложения для языков non-.NET. Certain Azure database types are backed up along with the app only if you configure a connection string for the database in your App Service app. Дополнительные сведения см. в разделе Создание пользовательской резервной копии. Если вам не нужна автоматическая резервная копия, используйте параметры приложения.

Во время выполнения строки подключения доступны в виде переменных среды с соответствующими префиксами для каждого типа соединения.

  • SQL Server: SQLCONNSTR_
  • MySQL: MYSQLCONNSTR_
  • Azure SQL: SQLAZURECONNSTR_
  • Custom: CUSTOMCONNSTR_
  • PostgreSQL: POSTGRESQLCONNSTR_
  • Центры уведомлений Azure: NOTIFICATIONHUBCONNSTR_
  • Служебная шина Azure: SERVICEBUSCONNSTR_
  • Центры событий Azure: EVENTHUBCONNSTR_
  • Azure Cosmos DB: DOCDBCONNSTR_
  • Кэш Redis: REDISCACHECONNSTR_

Примечание.

Приложения .NET, предназначенные для PostgreSQL, Центров уведомлений, служебной шины, Центров событий, Azure Cosmos DB и кэша Redis, должны задать строку подключения на Custom в качестве обходного решения для известной проблемы в .NET EnvironmentVariablesConfigurationProvider.

Например, к строке подключения MySQL с именем connectionstring1 можно обращаться как к переменной среды MYSQLCONNSTR_connectionString1. Для шагов, относящихся к каждому стеку языков, смотрите:

Connection strings are always encrypted when they're stored (encrypted at rest).

Примечание.

You can also resolve connection strings from Key Vault by using Key Vault references.

  1. На портале Azure найдите и выберите Службы приложений, а затем выберите приложение.

  2. В меню слева приложения выберите Параметры, >. Затем выберите строки подключения.

    По умолчанию в целях безопасности значения для строк подключения на портале скрыты. Чтобы увидеть скрытое значение строки подключения, в разделе "Значение" выберите "Показать значение". Чтобы просмотреть скрытые значения всех строк подключения, выберите "Показать значения".

  3. Чтобы добавить новую строка подключения, нажмите кнопку "Добавить". Чтобы изменить строку подключения, выберите строку подключения.

  4. В диалоговом окне можно прикрепить строку подключения к текущему слоту.

  5. По завершении нажмите кнопку "Применить". Затем выберите Применить на странице переменных среды.

Групповое изменение строк подключения

  1. Select Advanced edit.
  2. Измените строки подключения в текстовой области.
  3. По завершении нажмите кнопку "Применить". Не забудьте также выбрать Применить на странице Переменные среды.

Строки подключения задаются в следующем формате JSON.

[
  {
    "name": "name-1",
    "value": "conn-string-1",
    "type": "SQLServer",
    "slotSetting": false
  },
  {
    "name": "name-2",
    "value": "conn-string-2",
    "type": "PostgreSQL",
    "slotSetting": false
  },
  ...
]

Настройка параметров языкового стека

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

Настройка общих параметров

Чтобы настроить общие параметры, выполните действия для предпочитаемых средств.

  1. На портале Azure найдите и выберите Службы приложений, а затем выберите приложение.

  2. В меню слева приложения выберите "Конфигурация параметров>". Затем выберите общие параметры.

    Снимок экрана: выбор для открытия общих параметров.

Здесь можно настроить некоторые общие параметры для приложения. Для некоторых параметров необходимо выполнить масштабирование до более высокой ценовой категории.

  • Параметры стека: настройте параметры стека программного обеспечения для запуска приложения, включая версии языка и пакета SDK.

    Для приложений Linux можно выбрать версию среды выполнения языка и задать необязательную команду запуска.

  • Параметры платформы: настройка параметров для платформы размещения, в том числе:

    • Платформа: выберите 32-разрядную или 64-разрядную версию. Только для приложений для Windows.

    • Состояние FTP: разрешить только FTPS или отключить FTP полностью.

    • ВЕРСИЯ HTTP: установите значение 2.0 , чтобы включить поддержку протокола HTTPS/2 .

      Примечание.

      Большинство современных браузеров поддерживают протокол HTTP/2 только по протоколу TLS. Незашифрованный трафик продолжает использовать HTTP/1.1. Чтобы клиентские браузеры могли подключаться к приложению по протоколу HTTP/2, обеспечьте безопасность настраиваемого DNS-имени. Дополнительные сведения см. в разделе "Обеспечение безопасности для пользовательского DNS-имени с привязкой TLS/SSL" в службе приложений.

    • Веб-сокеты: настройте для ASP.NET SignalR или socket.io, например.

    • AlwaysOn: включите, если вы хотите сохранить приложение загружено, даже если нет трафика.

      При отключении AlwaysOn (по умолчанию) приложение выгрузится через 20 минут без входящих запросов. The unloaded app can cause high latency for new requests because of its warm-up time.

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

      AlwaysOn требуется для непрерывных веб-заданий или веб-заданий, которые активируют выражение cron.

    • Session affinity: In a multiple-instance deployment, ensure that the client is routed to the same instance for the life of the session. Для приложений без отслеживания состояния этот параметр можно установить в значение Off (Выкл.).

    • Session affinity proxy: Turn on if your app is behind a reverse proxy (like Azure Application Gateway or Azure Front Door) and you're using the default host name. Домен для файла cookie привязки сеансов соответствует переданному имени хоста от обратного прокси-сервера.

    • Только HTTPS: включите, если вы хотите перенаправить весь HTTP-трафик на HTTPS.

    • Минимальная версия TLS: выберите минимальную версию шифрования TLS, которую требует ваше приложение.

  • Debugging (Отладка): включение удаленной отладки для приложений ASP.NET, ASP.NET Core или Node.js. Этот параметр автоматически отключается через 48 часов.

  • Входящие сертификаты клиента: требовать сертификаты клиента во взаимной проверке подлинности.

Настройка документов по умолчанию

Документ по умолчанию — это веб-страница, которая отображается по корневому URL-адресу приложения службы приложений. Используется первый найденный файл в списке. Если приложение использует модули, которые направляются по URL-адресу вместо обслуживания статического содержимого, документы по умолчанию не требуются.

Параметр настройки документов по умолчанию предназначен только для приложений Windows.

  1. На портале Azure найдите и выберите Службы приложений, а затем выберите приложение.
  2. В меню слева приложения выберите "Конфигурация". Затем выберите документы по умолчанию.
  3. Чтобы добавить документ по умолчанию, нажмите кнопку "Создать документ". Чтобы удалить документ по умолчанию, выберите "Удалить " справа.

Map a URL path to a directory

По умолчанию Служба приложений запускает приложение из корневого каталога кода приложения. Однако некоторые веб-платформы не запускаются в корневом каталоге. Например, Laravel запускается в подкаталоге public. Такое приложение будет доступно по адресу http://contoso.com/public, например, но обычно требуется направить http://contoso.com в каталог public. Если файл запуска приложения находится в другой папке или в репозитории имеется несколько приложений, можно изменить или добавить виртуальные приложения и каталоги.

Функция сопоставления виртуального каталога с физическим путем доступна только в приложениях Windows.

  1. На портале Azure найдите и выберите Службы приложений, а затем выберите приложение.

  2. В меню слева приложения выберите "Конфигурация параметров>". Then select Path mappings.

  3. Выберите новое виртуальное приложение или каталог. Затем выполните одно из следующих действий:

    • To map a virtual directory to a physical path, leave Directory selected. Укажите виртуальный каталог и соответствующий относительный (физический) путь к корню веб-сайта (D:\home).
    • Чтобы пометить виртуальный каталог как веб-приложение, отмените выбор каталога.

    Снимок экрана с вариантами отображения флажка

  4. Нажмите OK. Затем нажмите кнопку "Сохранить " на странице "Конфигурация ".

Configure handler mappings

Для приложений для Windows можно настроить сопоставления обработчика IIS и виртуальных приложений и каталогов. Handler mappings let you add custom script processors to handle requests for specific file extensions.

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

  1. На портале Azure найдите и выберите Службы приложений, а затем выберите приложение.

  2. В меню слева приложения выберите "Конфигурация параметров>". Then select Path mappings.

  3. Select New handler mapping. Настройте обработчик следующим образом.

    • Расширение. Расширение файла, которое требуется обрабатывать, например *.php или handler.fcgi.
    • Обработчик скриптов. The absolute path of the script processor to you. Обработчик скриптов обрабатывает запросы к файлам, соответствующим расширению файла. Используйте путь D:\home\site\wwwroot для указания корневого каталога веб-приложения.
    • Аргументы. Необязательные аргументы командной строки для обработчика скриптов.
  4. Нажмите OK. Затем нажмите кнопку "Сохранить " на странице "Конфигурация ".

Настройка пользовательских контейнеров