App Service'te ad çözümlemesi (DNS)
Uygulamanız bağımlı kaynaklara çağrı yaparken DNS kullanır. Kaynaklar Key Vault, Depolama veya Azure SQL gibi Azure hizmetleri olabilir, ancak uygulamanızın bağımlı olduğu web API'leri de olabilir. Örneğin myservice.com için bir çağrı yapmak istediğinizde, adı bir IP'ye çözümlemek için DNS kullanıyorsunuz demektir. Bu makalede, App Service'in ad çözümlemesini nasıl işlediği ve hangi DNS sunucularının kullanılacağını nasıl belirlediği açıklanmaktadır. Makalede, DNS çözümlemesini yapılandırmak için kullanabileceğiniz ayarlar da açıklanmaktadır.
App Service'te ad çözümleme nasıl çalışır?
Uygulamanızı bir sanal ağ ile tümleştirmiyorsanız ve özel DNS sunucuları yapılandırılmadıysa, uygulamanız Azure DNS kullanır. Uygulamanızı bir sanal ağ ile tümleştirirseniz, uygulamanız sanal ağın DNS yapılandırmasını kullanır. Sanal ağ için varsayılan olarak Azure DNS de kullanılır. Sanal ağ üzerinden Azure DNS özel bölgelerine bağlantı vermek ve bunu özel uç nokta çözümlemesi veya özel etki alanı adı çözümlemesi için kullanmak da mümkündür.
Sanal ağınızı özel DNS sunucularının listesiyle yapılandırdıysanız, ad çözümlemesi bu sunucuları kullanır. Sanal ağınız özel DNS sunucuları kullanıyorsa ve özel uç noktalar kullanıyorsanız, bu makaleyi dikkatle okumalısınız. Özel DNS sunucularınızın uygulamanız tarafından kullanılan tüm genel DNS kayıtlarını çözümleyebildiklerine de dikkat etmeniz gerekir. DNS yapılandırmanızın istekleri bir genel DNS sunucusuna iletmesi, özel DNS sunucuları listesine Azure DNS gibi bir genel DNS sunucusu içermesi veya uygulama düzeyinde alternatif bir sunucu belirtmesi gerekir.
Uygulamanızın DNS kullanarak bir etki alanı adını çözümlemesi gerektiğinde, uygulama yapılandırılan tüm DNS sunucularına bir ad çözümleme isteği gönderir. Listedeki ilk sunucu zaman aşımı sınırı içinde bir yanıt döndürürse, hemen döndürülen sonucu alırsınız. Aksi takdirde uygulama, diğer sunucuların zaman aşımı süresi içinde yanıt vermesini bekler ve DNS sunucusu yanıtlarını sunucuları yapılandırdığınız sırada değerlendirir. Sunuculardan hiçbiri zaman aşımı içinde yanıt vermiyorsa ve yeniden denemeyi yapılandırdıysanız işlemi yinelersiniz.
DNS sunucularını yapılandırma
Tek tek uygulama, site özelliği nesnesinde dnsConfiguration
özelliğini belirterek dnsServers
DNS yapılandırmasını geçersiz kılmanıza olanak tanır. En fazla beş özel DNS sunucusu belirtebilirsiniz. Azure CLI'yi kullanarak özel DNS sunucularını yapılandırabilirsiniz:
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 uygulaması ayarları
App Service'in DNS sunucularını ve ad çözümleme davranışını yapılandırmak için mevcut uygulama ayarları vardır. Site özellikleri, her ikisi de varsa uygulama ayarlarını geçersiz kılar. Site özellikleri, Azure İlkesi ile denetlenebilir ve yapılandırma sırasında doğrulanabilir olma avantajına sahiptir. Site özelliklerini kullanmanızı öneririz.
Mevcut WEBSITE_DNS_SERVER
uygulama ayarını kullanmaya devam edebilir ve her iki ayardan biriyle özel DNS sunucuları ekleyebilirsiniz. Uygulama ayarını kullanarak birden çok DNS sunucusu eklemek istiyorsanız, sunucuları boşluk eklemeden virgülle ayırmanız gerekir.
uygulama ayarını WEBSITE_DNS_ALT_SERVER
kullanarak, belirli DNS sunucusunu yapılandırılan DNS sunucuları listesine eklersiniz. Alternatif DNS sunucusu, hem açıkça yapılandırılmış DNS sunucularına hem de sanal ağdan devralınan DNS sunucularına eklenir.
Ad çözümleme davranışını yapılandırmak için uygulama ayarları da vardır ve olarak adlandırılır WEBSITE_DNS_MAX_CACHE_TIMEOUT
WEBSITE_DNS_TIMEOUT
WEBSITE_DNS_ATTEMPTS
.
Ad çözümleme davranışını yapılandırma
Ad çözümlemesi üzerinde ayrıntılı denetime ihtiyacınız varsa, App Service varsayılan davranışı değiştirmenize olanak tanır. Yeniden deneme girişimlerini değiştirebilir, zaman aşımını ve önbellek zaman aşımını yeniden deneyebilirsiniz. Önbellek süresini devre dışı bırakma veya azaltma gibi davranışları değiştirmek performansı etkileyebilir.
Özellik adı | Windows varsayılan değeri | Linux varsayılan değeri | İzin verilen değerler | Açıklama |
---|---|---|---|---|
dnsRetryAttemptCount | 1 | 5 | 1-5 | Yeniden deneme yapılmadığı durumlarda çözüme kavuşturma denemelerinin sayısını tanımlar. |
dnsMaxCacheTimeout | 30 | 0 | 0-60 | DNS sonuçları tek tek kayıt TTL'sine göre önbelleğe alınır, ancak tanımlanan en fazla önbellek zaman aşımından daha uzun değildir. Önbelleği sıfır olarak ayarlamak, önbelleğe almanın devre dışı olduğu anlamına gelir. |
dnsRetryAttemptTimeout | 3 | 1 | 1-30 | Yeniden denemeden veya başarısız olmadan önce zaman aşımı. Zaman aşımı, birincil yanıt vermezse ikincil sunucu sonuçlarını bekleme süresini de tanımlar. |
Not
- Ad çözümleme davranışının değiştirilmesi Windows Container uygulamalarında desteklenmez.
- yapılandırmak
dnsMaxCacheTimeout
için ,="true" uygulama ayarınıWEBSITE_ENABLE_DNS_CACHE
ekleyerek önbelleğe alma özelliğinin etkinleştirildiğinden emin olmanız gerekir. Önbelleğe almayı etkinleştirir ancak yapılandırmazsanızdnsMaxCacheTimeout
, zaman aşımı 30 olarak ayarlanır.
Şu CLI komutlarını kullanarak ad çözümleme davranışını yapılandırın:
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"
Şu CLI komutunu kullanarak ayarları doğrulayın:
az resource show --resource-group <group-name> --name <app-name> --query properties.dnsConfiguration --resource-type "Microsoft.Web/sites"
Sonraki adımlar
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin