Udostępnij za pośrednictwem


Rozpoznawanie nazw (DNS) w usłudze App Service

Aplikacja używa systemu DNS podczas wykonywania wywołań do zasobów zależnych. Zasoby mogą być usługami platformy Azure, takimi jak Key Vault, Storage lub Azure SQL, ale mogą to być również internetowe interfejsy API, od których zależy Aplikacja. Jeśli chcesz wykonać wywołanie na przykład myservice.com, używasz systemu DNS do rozpoznawania nazwy adresu IP. W tym artykule opisano sposób obsługi rozpoznawania nazw w usłudze App Service oraz sposobu określania, z jakich serwerów DNS korzystać. W tym artykule opisano również ustawienia, których można użyć do skonfigurowania rozpoznawania nazw DNS.

Jak działa rozpoznawanie nazw w usłudze App Service

Jeśli nie integrujesz aplikacji z siecią wirtualną, a niestandardowe serwery DNS nie są skonfigurowane, aplikacja korzysta z usługi Azure DNS. W przypadku integracji aplikacji z siecią wirtualną aplikacja używa konfiguracji DNS sieci wirtualnej. Domyślną wartością dla sieci wirtualnej jest również użycie usługi Azure DNS. Za pośrednictwem sieci wirtualnej można również połączyć się ze strefami prywatnymi usługi Azure DNS i używać ich do rozpoznawania prywatnych punktów końcowych lub rozpoznawania nazw domen prywatnych.

Jeśli sieć wirtualna została skonfigurowana z listą niestandardowych serwerów DNS, rozpoznawanie nazw w usłudze App Service będzie używać maksymalnie pięciu niestandardowych serwerów DNS. Jeśli sieć wirtualna korzysta z niestandardowych serwerów DNS i używasz prywatnych punktów końcowych, przeczytaj ten artykuł uważnie. Należy również wziąć pod uwagę, że niestandardowe serwery DNS mogą rozpoznawać wszystkie publiczne rekordy DNS używane przez aplikację. Konfiguracja DNS musi przesyłać żądania do publicznego serwera DNS, dołączyć publiczny serwer DNS, taki jak Azure DNS, na liście niestandardowych serwerów DNS lub określić alternatywny serwer na poziomie aplikacji.

Gdy aplikacja musi rozpoznać nazwę domeny przy użyciu systemu DNS, aplikacja wysyła żądanie rozpoznawania nazw do wszystkich skonfigurowanych serwerów DNS. Jeśli pierwszy serwer na liście zwraca odpowiedź w limicie limitu czasu, otrzymasz wynik zwrócony natychmiast. Jeśli tak nie jest, aplikacja czeka na odpowiedzi innych serwerów w okresie przekroczenia limitu czasu i ocenia odpowiedzi serwera DNS w kolejności, w której skonfigurowano serwery. Jeśli żaden z serwerów nie odpowiada w ramach limitu czasu i skonfigurowano ponowną próbę, powtórz ten proces.

Konfigurowanie serwerów DNS

Pojedyncza aplikacja umożliwia zastąpienie konfiguracji DNS przez określenie dnsServers właściwości w obiekcie właściwości lokacji dnsConfiguration . Można określić maksymalnie pięć niestandardowych serwerów DNS. Niestandardowe serwery DNS można skonfigurować przy użyciu interfejsu wiersza polecenia platformy Azure:

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']"

Ustawienia aplikacji DNS

Usługa App Service ma istniejące ustawienia aplikacji do konfigurowania serwerów DNS i zachowania rozpoznawania nazw. Właściwości witryny zastępują ustawienia aplikacji, jeśli oba te ustawienia istnieją. Właściwości lokacji mają zaletę inspekcji za pomocą usługi Azure Policy i weryfikowania w momencie konfiguracji. Zalecamy używanie właściwości witryny.

Nadal możesz użyć istniejącego WEBSITE_DNS_SERVER ustawienia aplikacji i można dodać niestandardowe serwery DNS przy użyciu dowolnego ustawienia. Jeśli chcesz dodać wiele serwerów DNS przy użyciu ustawienia aplikacji, musisz oddzielić serwery przecinkami bez dodanych pustych spacji.

Przy użyciu ustawienia WEBSITE_DNS_ALT_SERVERaplikacji dołącza określony serwer DNS do listy skonfigurowanych serwerów DNS. Alternatywny serwer DNS jest dołączany zarówno do jawnie skonfigurowanych serwerów DNS, jak i serwerów DNS dziedziczone z sieci wirtualnej.

Istnieją również ustawienia aplikacji służące do konfigurowania zachowania rozpoznawania nazw i mają nazwy WEBSITE_DNS_MAX_CACHE_TIMEOUT, WEBSITE_DNS_TIMEOUT i WEBSITE_DNS_ATTEMPTS.

Konfigurowanie zachowania rozpoznawania nazw

Jeśli potrzebujesz szczegółowej kontroli nad rozpoznawaniem nazw, usługa App Service umożliwia modyfikowanie domyślnego zachowania. Możesz modyfikować próby ponawiania, ponawiać próbę przekroczenia limitu czasu i limitu czasu pamięci podręcznej. Zmiana zachowania, takiego jak wyłączenie lub obniżenie czasu trwania pamięci podręcznej, może mieć wpływ na wydajność.

Nazwa właściwości Wartość domyślna systemu Windows Wartość domyślna systemu Linux Dozwolone wartości opis
dnsRetryAttemptCount 1 5 1–5 Definiuje liczbę prób rozwiązania, w których jeden oznacza, że nie ma ponownych prób.
dnsMaxCacheTimeout 30 0 0-60 Wyniki DNS są buforowane zgodnie z czasem wygaśnięcia poszczególnych rekordów, ale nie dłużej niż zdefiniowany maksymalny limit czasu pamięci podręcznej. Ustawienie pamięci podręcznej na zero oznacza, że buforowanie jest wyłączone.
dnsRetryAttemptTimeout 3 1 1-30 Limit czasu przed ponowieniem próby lub niepowodzeniem. Limit czasu definiuje również czas oczekiwania na wyniki serwera pomocniczego, jeśli podstawowy nie odpowiada.

Uwaga

  • Zmiana zachowania rozpoznawania nazw nie jest obsługiwana w aplikacjach kontenera systemu Windows.
  • Aby skonfigurować dnsMaxCacheTimeoutusługę , należy upewnić się, że buforowanie jest włączone, dodając ustawienie WEBSITE_ENABLE_DNS_CACHEaplikacji ="true". Jeśli włączysz buforowanie, ale nie skonfigurujesz dnsMaxCacheTimeoutwartości , limit czasu zostanie ustawiony na 30.

Skonfiguruj zachowanie rozpoznawania nazw przy użyciu następujących poleceń interfejsu wiersza polecenia:

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"

Zweryfikuj ustawienia przy użyciu tego polecenia interfejsu wiersza polecenia:

az resource show --resource-group <group-name> --name <app-name> --query properties.dnsConfiguration --resource-type "Microsoft.Web/sites"

Następne kroki