Разрешение имен (DNS) в Служба приложений
Приложение использует DNS при вызове зависимых ресурсов. Ресурсы могут быть службами Azure, такими как Key Vault, хранилище или SQL Azure, но это также могут быть веб-API, от которые зависит ваше приложение. Если вы хотите вызвать например myservice.com, вы используете DNS для разрешения имени IP-адреса. В этой статье описывается, как Служба приложений обрабатывает разрешение имен и как определяет, какие DNS-серверы следует использовать. В статье также описаны параметры, которые можно использовать для настройки разрешения DNS.
Как работает разрешение имен в Служба приложений
Если вы не интегрируете приложение с виртуальной сетью и пользовательскими DNS-серверами, приложение использует Azure DNS. При интеграции приложения с виртуальной сетью приложение использует конфигурацию DNS виртуальной сети. По умолчанию для виртуальной сети также используется Azure DNS. Через виртуальную сеть также можно связаться с частными зонами Azure DNS и использовать их для разрешения частных конечных точек или разрешения частных доменных имен.
Если вы настроили виртуальную сеть со списком пользовательских DNS-серверов, разрешение имен в Служба приложений будет использовать до пяти настраиваемых DNS-серверов. Если виртуальная сеть использует пользовательские DNS-серверы и используете частные конечные точки, следует внимательно ознакомиться с этой статьей . Кроме того, необходимо учитывать, что пользовательские DNS-серверы могут разрешать все общедоступные записи DNS, используемые приложением. Конфигурация DNS должна перенаправить запросы на общедоступный DNS-сервер, включить общедоступный DNS-сервер, например Azure DNS, в список настраиваемых DNS-серверов или указать альтернативный сервер на уровне приложения.
Когда приложению необходимо разрешить доменное имя с помощью DNS, приложение отправляет запрос разрешения имен всем настроенным DNS-серверам. Если первый сервер в списке возвращает ответ в течение ограничения времени ожидания, результат возвращается немедленно. Если нет, приложение ожидает ответа на другие серверы в течение периода ожидания и оценивает ответы DNS-сервера в том порядке, в который настроены серверы. Если ни один из серверов не отвечает в течение времени ожидания и настроена повторная попытка, повторите этот процесс.
Настройка DNS-серверов
Отдельное приложение позволяет переопределить конфигурацию DNS, указав dnsServers
свойство в объекте dnsConfiguration
свойства сайта. Можно указать до пяти настраиваемых DNS-серверов. Настраиваемые DNS-серверы можно настроить с помощью Azure CLI:
az resource update --resource-group <group-name> --name <app-name> --resource-type "Microsoft.Web/sites" --set properties.dnsConfiguration.dnsServers="['168.63.129.16','xxx.xxx.xxx.xxx']"
Параметры приложения DNS
Служба приложений имеет существующие параметры приложения для настройки поведения DNS-серверов и разрешения имен. Свойства сайта переопределяют параметры приложения, если они существуют. Свойства сайта имеют преимущество аудита с помощью Политика Azure и проверки во время настройки. Рекомендуется использовать свойства сайта.
Вы по-прежнему можете использовать существующий WEBSITE_DNS_SERVER
параметр приложения, и вы можете добавить настраиваемые DNS-серверы с помощью любого параметра. Если вы хотите добавить несколько DNS-серверов с помощью параметра приложения, необходимо разделить серверы запятыми без пробелов.
Используя параметр WEBSITE_DNS_ALT_SERVER
приложения, вы добавляете конкретный DNS-сервер в список настроенных DNS-серверов. Альтернативный DNS-сервер добавляется как к явно настроенным DNS-серверам, так и к DNS-серверам, унаследованным от виртуальной сети.
Параметры приложения также существуют для настройки поведения разрешения имен и именованы и WEBSITE_DNS_ATTEMPTS
.WEBSITE_DNS_MAX_CACHE_TIMEOUT
WEBSITE_DNS_TIMEOUT
Настройка поведения разрешения имен
Если требуется точное управление разрешением имен, Служба приложений позволяет изменить поведение по умолчанию. Вы можете изменить попытки повторных попыток, тайм-аут повторных попыток и тайм-аут кэша. Изменение поведения, например отключение или снижение длительности кэша, может повлиять на производительность.
Имя свойства | Значение по умолчанию для Windows | Значение по умолчанию для Linux | Допустимые значения | Description |
---|---|---|---|---|
dnsRetryAttemptCount | 1 | 5 | 1-5 | Определяет количество попыток разрешения, в которых одно из них не означает повторных попыток. |
dnsMaxCacheTimeout | 30 | 0 | 0-60 | Результаты DNS кэшируются в соответствии с отдельными записями TTL, но не более определенного максимального времени ожидания кэша. Установка кэша равным нулю означает, что кэширование отключено. |
dnsRetryAttemptTimeout | 3 | 1 | 1–30 | Время ожидания перед повтором или сбоем. Время ожидания также определяет время ожидания результатов вторичного сервера, если основной сервер не отвечает. |
Примечание.
- Изменение поведения разрешения имен не поддерживается в приложениях контейнеров Windows.
- Чтобы настроить
dnsMaxCacheTimeout
, необходимо убедиться, что кэширование включено, добавив параметрWEBSITE_ENABLE_DNS_CACHE
приложения ="true". Если вы включаете кэширование, но не настраиваетеdnsMaxCacheTimeout
, время ожидания будет иметь значение 30.
Настройте поведение разрешения имен с помощью следующих команд CLI:
az resource update --resource-group <group-name> --name <app-name> --set properties.dnsConfiguration.dnsMaxCacheTimeout=[0-60] --resource-type "Microsoft.Web/sites"
az resource update --resource-group <group-name> --name <app-name> --set properties.dnsConfiguration.dnsRetryAttemptCount=[1-5] --resource-type "Microsoft.Web/sites"
az resource update --resource-group <group-name> --name <app-name> --set properties.dnsConfiguration.dnsRetryAttemptTimeout=[1-30] --resource-type "Microsoft.Web/sites"
Проверьте параметры с помощью этой команды CLI:
az resource show --resource-group <group-name> --name <app-name> --query properties.dnsConfiguration --resource-type "Microsoft.Web/sites"