Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure Application Gateway kullanırken alınan bir hatalı ağ geçidi (502) hatalarını çözmeyi öğrenin.
Not
Azure ile etkileşim kurmak için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz. Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.
Genel bakış
Bir uygulama ağ geçidini yapılandırdıktan sonra, görebileceğiniz hatalardan biri Sunucu Hatası: 502 - Web sunucusu ağ geçidi veya ara sunucu olarak çalışırken geçersiz bir yanıt aldı. Bu hata aşağıdaki ana nedenlerle oluşabilir:
- NSG, UDR veya Özel DNS, arka uç havuzu üyelerine erişimi engelliyor.
- Arka uç VM'leri veya sanal makine ölçek kümesi örnekleri varsayılan durum yoklamasına yanıt vermiyor.
- Özelleştirilmiş sağlık yoklamaları geçersiz veya hatalı şekilde yapılandırılmış.
- Azure Uygulama Ağ Geçidi'nin arka uç havuzu yapılandırılmamış veya boş.
- Sanal makine ölçek kümesindeki VM'lerin veya örneklerin hiçbiri iyi durumda değil.
- Kullanıcı isteklerinde zaman aşımı veya bağlantı sorunları
Ağ Güvenlik Grubu, Kullanıcı Tanımlı Yol veya Özel DNS sorunu
Neden
NSG, UDR veya özel DNS nedeniyle arka uç erişimi engellenirse, uygulama ağ geçidi örnekleri arka uç havuzuna erişemez. Bu sorun yoklama hatalarına neden olur ve 502 hatasıyla sonuçlanır.
NSG/UDR, uygulama ağ geçidi alt ağına veya uygulama VM'lerinin dağıtıldığı alt ağda bulunabilir.
Benzer şekilde, sanal ağda özel bir DNS bulunması da sorunlara neden olabilir. Arka uç havuzu üyeleri için kullanılan bir FQDN, kullanıcı tarafından yapılandırılmış sanal ağ için DNS sunucusu tarafından doğru çözümlenmeyebilir.
Çözüm
Aşağıdaki adımları izleyerek NSG, UDR ve DNS yapılandırmasını doğrulayın:
Uygulama ağ geçidi alt ağıyla ilişkili NSG'leri denetleyin. Arka uçla iletişimin engellenmediğinden emin olun. Daha fazla bilgi için bkz . Ağ güvenlik grupları.
Uygulama ağ geçidi alt ağıyla ilişkili UDR'yi denetleyin. UDR'nin trafiği arka uç alt ağından uzaklaştırmadığından emin olun. Örneğin, ExpressRoute/VPN aracılığıyla uygulama ağ geçidi alt ağına tanıtılan ağ sanal gereçlerine veya varsayılan yollara yönlendirme olup olmadığını denetleyin.
$vnet = Get-AzVirtualNetwork -Name vnetName -ResourceGroupName rgName Get-AzVirtualNetworkSubnetConfig -Name appGwSubnet -VirtualNetwork $vnet
Arka uç VM ile etkin NSG ve route'u denetle
Get-AzEffectiveNetworkSecurityGroup -NetworkInterfaceName nic1 -ResourceGroupName testrg Get-AzEffectiveRouteTable -NetworkInterfaceName nic1 -ResourceGroupName testrg
Sanal ağda özel DNS olup olmadığını denetleyin. DNS, çıktıdaki sanal ağ özelliklerinin ayrıntılarına bakılarak denetlenebilir.
Get-AzVirtualNetwork -Name vnetName -ResourceGroupName rgName DhcpOptions : { "DnsServers": [ "x.x.x.x" ] }
Varsa, DNS sunucusunun arka uç havuzu üyesinin FQDN'sini doğru çözümleyebilmesini sağlayın.
Varsayılan sağlık yoklaması ile ilgili sorunlar
Neden
502 hataları, varsayılan sistem durumu yoklamasının arka uç VM'lerine ulaşamaması sık görülen göstergelerden biri olabilir.
Bir uygulama ağ geçidi örneği sağlandığında, BackendHttpSetting özelliklerini kullanarak her BackendAddressPool için otomatik olarak bir varsayılan durum yoklaması yapılandırılır. Bu probu ayarlamak için kullanıcı girişi gerekmez. Özellikle, bir yük dengeleme kuralı yapılandırıldığında, BackendHttpSetting ile BackendAddressPool arasında bir ilişkilendirme yapılır. Bu ilişkilendirmelerin her biri için varsayılan bir yoklama yapılandırılır ve uygulama ağ geçidi, BackendHttpSetting öğesinde belirtilen bağlantı noktasındaki BackendAddressPool'daki her örneğe düzenli bir sistem durumu denetimi bağlantısı başlatır.
Aşağıdaki tabloda, varsayılan sistem durumu yoklaması ile ilişkili değerler listelenir:
İnceleme özelliği | Değer | Açıklama |
---|---|---|
Sorgulama URL'si | http://127.0.0.1/ |
URL yolu |
Aralık | 30 | Saniye cinsinden sonda aralığı |
Zaman aşımı | 30 | Yoklama süresi aşımı (saniye cinsinden) |
Sağlıksız durum eşiği | 3 | Yoklama yeniden deneme sayısı. Arka uç sunucusu, ardışık yoklama hatası sayısı sağlıksız eşiğe ulaştıktan sonra çalışmaz olarak işaretlenir. |
Çözüm
- İsteğin konak değeri 127.0.0.1 olarak ayarlanır. Varsayılan sitenin yapılandırıldığından ve 127.0.0.1'de dinlediğinden emin olun.
- İsteğin protokolü BackendHttpSetting protokolü tarafından belirlenir.
- URI Yolu olarak /ayarlanır.
- BackendHttpSetting 80 dışında bir bağlantı noktası belirtiyorsa, varsayılan site bu bağlantı noktasında dinleyecek şekilde yapılandırılmalıdır.
- Çağrı
protocol://127.0.0.1:port
bir HTTP 200 sonuç kodu döndürmelidir. Bu kod 30 saniyelik zaman aşımı süresi içinde döndürülmelidir. - Yapılandırılan bağlantı noktasının açık olduğundan ve yapılandırılan bağlantı noktasında gelen veya giden trafiği engelleyen güvenlik duvarı kuralları veya Azure Ağ Güvenlik Grupları olmadığından emin olun.
- Klasik Azure VM'leri veya Bulut Hizmeti bir FQDN veya genel IP ile kullanılıyorsa ilgili uç noktanın açıldığından emin olun.
- VM Azure Resource Manager aracılığıyla yapılandırıldıysa ve uygulama ağ geçidinin dağıtıldığı sanal ağın dışındaysa, istenen bağlantı noktasında erişime izin verecek şekilde bir Ağ Güvenlik Grubu yapılandırılmalıdır.
Daha fazla bilgi için bkz . Application Gateway altyapı yapılandırması.
Özelleştirilmiş sağlık denetimi ile ilgili sorunlar
Neden
Özel sistem durumu yoklamaları, varsayılan yoklama davranışına ek esneklik sağlar. Özel yoklamalar kullandığınızda, arka uç havuzu örneğini iyi durumda değil olarak işaretlemeden önce yoklama aralığını, URL'yi, test yolunu ve kaç başarısız yanıtı kabul etmek istediğinizi yapılandırabilirsiniz.
Aşağıdaki ek özellikler eklenir:
İnceleme özelliği | Açıklama |
---|---|
Ad | Sondanın adı. Bu ad, arka uç HTTP ayarlarında sondayı belirtmek için kullanılır. |
Protokol | Sondaları göndermek için kullanılan protokol. Test düzeneği, arka uç HTTP ayarlarında tanımlanan protokolü kullanır. |
Sunucu | Sondayı göndermek için ana bilgisayar adı. Yalnızca uygulama ağ geçidinde birden çok site yapılandırıldığında geçerlidir. Bu, VM ana bilgisayar adından farklıdır. |
Yol | Yoklamanın göreli yolu. Geçerli yol '/' ile başlar. Prob <protocol>://<host>:<port><yola> gönderilir |
Aralık | Saniye cinsinden ölçüm aralığı. Bu, ardışık iki yoklama arasındaki zaman aralığıdır. |
Zaman aşımı | Yoklama saniyeler içinde zaman aşımına uğrar. Bu zaman aşımı süresi içinde geçerli bir yanıt alınmazsa yoklama başarısız olarak işaretlenir. |
Sağlıksız durum eşiği | Yoklama yeniden deneme sayısı. Arka uç sunucusu, ardışık yoklama hatası sayısı sağlıksız eşiğe ulaştıktan sonra çalışmaz olarak işaretlenir. |
Çözüm
Önceki tabloda gösterildiği gibi, Özel Sağlık Yoklaması'nın doğru yapılandırıldığını doğrulayın. Yukarıdaki sorun giderme adımlarına ek olarak aşağıdakilerden de emin olun:
- Probun, kılavuza göre doğru şekilde belirtildiğinden emin olun.
- Uygulama ağ geçidi tek bir site için yapılandırılmışsa, özel yoklamada aksi yapılandırılmadığı sürece Ana bilgisayar adı varsayılan olarak olarak
127.0.0.1
belirtilmelidir. - http://< host>:<bağlantı noktası><yoluna> yapılan bir çağrının 200 http sonuç kodu döndürdüğünden emin olun.
- Interval, Timeout ve UnhealthyThreshold değerlerinin kabul edilebilir aralıklar içinde olduğundan emin olun.
- HTTPS aracı kullanıyorsanız, arka uç sunucusunda bir yedek sertifika yapılandırarak sunucunun SNI gerektirmediğinden emin olun.
İstek zaman aşımı
Neden
Kullanıcı isteği alındığında, uygulama ağ geçidi yapılandırılan kuralları isteğe uygular ve isteği bir arka uç havuzu örneğine yönlendirir. Yapılandırılabilir bir süre boyunca sunucu örneğinden gelecek yanıtı bekler. Varsayılan olarak, bu aralık 20 saniyedir. Application Gateway v1'de uygulama ağ geçidi bu süre içinde arka uç uygulamasından yanıt almazsa, kullanıcı isteği 502 hatası alır. Application Gateway v2'de, uygulama ağ geçidi bu aralıkta arka uç uygulamasından yanıt almazsa, istek ikinci bir arka uç havuzu üyesine karşı denenir. İkinci istek başarısız olursa kullanıcı isteği 504 hatası alır.
Çözüm
Application Gateway, bu ayarı BackendHttpSetting aracılığıyla yapılandırmanıza olanak tanır ve bu ayar daha sonra farklı havuzlara uygulanabilir. Farklı arka uç havuzları farklı BackendHttpSetting'e ve farklı bir istek zaman aşımı yapılandırmasına sahip olabilir.
New-AzApplicationGatewayBackendHttpSettings -Name 'Setting01' -Port 80 -Protocol Http -CookieBasedAffinity Enabled -RequestTimeout 60
Boş Arka Uç Adres Havuzu
Neden
Uygulama ağ geçidinin arka uç adres havuzunda yapılandırılmış vm'leri veya sanal makine ölçek kümesi yoksa, hiçbir müşteri isteğini yönlendiremez ve hatalı bir ağ geçidi hatası gönderir.
Çözüm
Arka uç adres havuzunun boş olmadığından emin olun. Bu işlem PowerShell, CLI veya portal aracılığıyla yapılabilir.
Get-AzApplicationGateway -Name "SampleGateway" -ResourceGroupName "ExampleResourceGroup"
Önceki cmdlet'ten elde edilen çıkış, boş olmayan bir arka uç adres havuzu içermelidir. Aşağıdaki örnek, arka uç VM'leri için FQDN veya IP adresleriyle yapılandırılmış iki havuzun döndürüldüğünü göstermektedir. BackendAddressPool sağlama durumu 'Başarılı' olmalıdır.
Arka Plan Adres Havuzları Metni
[{
"BackendAddresses": [{
"ipAddress": "10.0.0.10",
"ipAddress": "10.0.0.11"
}],
"BackendIpConfigurations": [],
"ProvisioningState": "Succeeded",
"Name": "Pool01",
"Etag": "W/\"00000000-0000-0000-0000-000000000000\"",
"Id": "/subscriptions/<subscription id>/resourceGroups/<resource group name>/providers/Microsoft.Network/applicationGateways/<application gateway name>/backendAddressPools/pool01"
}, {
"BackendAddresses": [{
"Fqdn": "xyx.cloudapp.net",
"Fqdn": "abc.cloudapp.net"
}],
"BackendIpConfigurations": [],
"ProvisioningState": "Succeeded",
"Name": "Pool02",
"Etag": "W/\"00000000-0000-0000-0000-000000000000\"",
"Id": "/subscriptions/<subscription id>/resourceGroups/<resource group name>/providers/Microsoft.Network/applicationGateways/<application gateway name>/backendAddressPools/pool02"
}]
BackendAddressPool'daki iyi durumda olmayan örnekler
Neden
BackendAddressPool'un tüm örnekleri iyi durumda değilse, uygulama ağ geçidinin kullanıcı isteğini yönlendirecek bir arka ucu yoktur. Arka uç örneklerinin iyi durumda olduğu ancak gerekli uygulamanın dağıtılmadığı durumda da bu söz konusu olabilir.
Çözüm
Örneklerin iyi durumda olduğundan ve uygulamanın düzgün yapılandırıldığından emin olun. Arka uç örneklerinin aynı sanal ağ içindeki başka bir VM'den gelen ping'e yanıt verip veremediğinden emin olun. Genel bir uç noktayla yapılandırıldıysa, web uygulamasına yönelik bir tarayıcı isteğinin uygun olduğundan emin olun.
Yukarı akış SSL sertifikası eşleşmiyor
Neden
Arka uç sunucularına yüklenen TLS sertifikası, Konak isteği üst bilgisinde alınan ana bilgisayar adıyla eşleşmiyor.
Uçtan uca TLS'nin etkinleştirildiği senaryolarda, uygun "Arka Uç HTTP Ayarları" düzenlenerek ve burada "Arka uç protokolü" ayarının yapılandırması HTTPS olarak değiştirilerek elde edilen bir yapılandırma, arka uç sunucularına yüklenen TLS sertifikasının DNS ADıNıN HTTP ana bilgisayar üst bilgisi isteğinde arka uca gelen ana bilgisayar adıyla eşleştiğinden emin olmak zorunludur.
Hatırlatmak gerekirse, "Arka Uç HTTP Ayarları"nda HTTP yerine HTTPS protokolü seçeneğini etkinleştirmenin etkisi, Application Gateway örnekleri ile arka uç sunucuları arasında gerçekleşen iletişimin ikinci bölümünün TLS ile şifrelenmesidir.
Application Gateway'in varsayılan olarak istemciden aldığı aynı HTTP ana bilgisayar üst bilgisini arka uçtan göndermesi nedeniyle, arka uç sunucusuna yüklenen TLS sertifikasının HTTP ana bilgisayar üst bilgisinde bu arka uç sunucusu tarafından alınan ana bilgisayar adıyla eşleşen bir DNS ADı ile verildiğinden emin olmanız gerekir. Aksi belirtilmedikçe, bu konak adının istemciden alınan adla aynı olacağını unutmayın.
Örneğin:
Etki alanı www.contoso.com
için https isteklerini sunmak için bir Application Gateway'iniz olduğunu düşünün. Alan adı contoso.com, bir Azure DNS Genel Bölgesi'ne delege edilebilir ve bu bölgede isteklere hizmet edecek olan Application Gateway'in genel IP'sine işaret eden bir A DNS kaydı www.contoso.com
olabilir.
Bu Application Gateway'de, ana bilgisayar www.contoso.com
için protokol olarak HTTPS kullanmaya zorlanan bir "Arka Uç HTTP Ayarı" kuralına sahip bir dinleyiciniz olmalıdır (bu, uçtan uca TLS'yi güvence altına alır). Aynı kural, Web sunucusu olarak IIS çalıştıran iki VM ile bir arka uç havuzu yapılandırmış olabilir.
"Kuralların 'Bağlanan HTTP Ayarı'nda HTTPS'nin etkinleştirilmesi, Application Gateway örnekleri ile arka uçtaki sunucular arasında gerçekleşen iletişimin ikinci bölümünde TLS kullanılmasını sağlar."
Arka uç sunucularında DNS ADI www.contoso.com
veya *.contoso.com için verilmiş bir TLS sertifikası yoksa, istek Sunucu Hatası: 502 - Yukarı akış SSL sertifikası (arka uç sunucularında yüklü sertifika) konak üst bilgisindeki ana bilgisayar adıyla eşleşmediğinden web sunucusu ağ geçidi veya ara sunucu olarak davranırken geçersiz bir yanıt aldı , ve bu nedenle TLS anlaşması başarısız olur.
www.contoso.com
--> APP GW ön uç IP'si --> "Arka Uç HTTP Ayarları"nı HTTP yerine HTTPS protokollerini kullanacak şekilde yapılandıran bir kurala sahip dinleyici --> Arka Uç Havuzu --> Web sunucusu (için www.contoso.com
bir TLS sertifikasının yüklü olması gerekir)
Çözüm
Arka uç sunucusuna yüklenen TLS sertifikasının DNS ADıNıN HTTP arka uç ayarlarında yapılandırılan ana bilgisayar adıyla eşleşmesi gerekir; aksi takdirde Application Gateway örnekleri ile arka uç arasında gerçekleşen uçtan uca iletişimin ikinci bölümü "Yukarı akış SSL sertifikası eşleşmiyor" hatasıyla başarısız olur ve bir Sunucu Hatası döndürür: 502 - Web sunucusu, ağ geçidi veya ara sunucu olarak çalışırken geçersiz bir yanıt aldı
Sonraki adımlar
Yukarıdaki adımlar sorunu çözmezse bir destek bileti açın.