Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
Belirti
İstemci uygulaması 503 Service Unavailable
HTTP durum kodunu
hata kodu protocol.http.ProxyTunnelCreationFailed
olarak değiştirildi.
Hata mesajı
İstemci uygulaması aşağıdaki yanıt kodunu alır:
HTTP/1.1 503 Service Unavailable
Ayrıca, aşağıdaki hata mesajını da görebilirsiniz:
{ "fault":{ "faultstring":"Proxy refused to create tunnel with response status 403", "detail":{ "errorcode":"protocol.http.ProxyTunnelCreationFailed" } } }
Proxy ve tünellemeyi yönlendir
Apigee Edge, API proxy'lerinizin proxy üzerinden arka uç sunucunuzla iletişim kurmasını sağlar
sunucuya
Yönlendirme proxy'sini yapılandırın. Proxy sunucu güvenli (HTTPS) veya güvenli olmayan bir
proxy türüne (belirtilen) bağlı olarak arka uç sunucusuna (HTTP) bağlantı
HTTPClient.proxy.type
) mülkü tarafından kullanılır ve verileri aktarır
iki yönlüdür. Bu işlem, tünel oluşturma olarak bilinir.
Apigee Edge varsayılan olarak tüm trafik için tünelleme kullanır. Tünellemeyi devre dışı bırakmak için mülk
HTTPClient.use.tunneling
politikasının false
olarak ayarlanması gerekiyor.
Hata Kodu: Protocol.http.ProxyTunnelCreationFailed
Aşağıdaki durumlarda Apigee Edge, protocol.http.ProxyTunnelCreationFailed
hata kodunu döndürür:
herhangi bir nedenden dolayı Apigee Edge ile arka uç sunucusu arasında tünel oluşturamaması
güvenlik duvarı, EKL (Erişim Kontrol Listesi) kısıtlamaları, DNS sorunları, arka uç sunucusu gibi sorunlar
kullanım olmaması, zaman aşımları vb.
Normalde Apigee Edge'den gelen yanıtın faultstring
bölümündeki durum kodu
bu hataya yol açan olası üst düzey bir nedeni gösterir.
Hatalı dize şablonu:
Proxy refused to create tunnel with response status STATUS_CODE
Fultstring'te gözlemlenen bazı durum kodlarının olası nedenleri:
Aşağıdaki tabloda,
faultstring
:
Hata dizesi | Açıklama |
---|---|
Proxy, 403 yanıt durumuyla tünel oluşturmayı reddetti |
Bu durum, arka uç sunucusuyla yürütülebilir. |
Proxy, 503 yanıt durumuyla tünel oluşturmayı reddetti |
Bunun nedeni DNS sorunları, güvenlik duvarı kısıtlamaları, arka uç sunucusunun tünel oluşturulmasını önleyen kullanılamaması |
Proxy, 504 yanıt durumuyla tünel oluşturmayı reddetti |
Bu durum, tünel oluşturulurken zaman aşımları olduğunda ortaya çıkabilir |
faultstring
içinde gözlemlenen durum koduna bağlı olarak
uygun teknikleri ifade eder. Bu başucu kitabında, sorun giderme
faultstring
içindeki durum kodunu 403
gözlemlerseniz soruna
protocol.http.ProxyTunnelCreationFailed
hata kodu için.
Olası nedenler
Bu hata (durum kodu 403
), herhangi bir güvenlik duvarı veya EKL (Erişim Kontrol Paneli) varsa ortaya çıkar
Kontrol Listesi) için, arka uç sunucusunda tünelin çalışmasını engelleyen kısıtlamalar
proxy sunucu tarafından arka uç sunucusu arasında oluşturulan bir e-tablodur.
Neden | Açıklama | Şunun için geçerli sorun giderme talimatları: |
---|---|---|
Proxy, yanıt durumu 403 ile tünel oluşturmayı reddetti | Proxy sunucu, Proxy sunucu ana makine adını aldığı için tüneli oluşturmayı reddediyor
(Host üstbilgisindeki Arka uç sunucu ana makine adının) adını doğrulamaz. |
Yalnızca Edge Private Cloud kullanıcıları |
Sık kullanılan teşhis adımları
Bu hatayı teşhis etmek için aşağıdaki araçlardan/tekniklerden birini kullanın:
İzleme aracı
İzleme aracını kullanarak hatayı teşhis etmek için:
- İzleme oturumunu etkinleştirebilir ve
şunlardan birini yapın:
- Hatanın oluşmasını bekleyin veya
- Sorunu yeniden oluşturabiliyorsanız API çağrısını yaparak sorunu yeniden oluşturun
503 Service Unavailable
Proxy refused to create tunnel with response status 403
ile.
Show all FlowInfos (Tüm Akış Bilgilerini Göster) seçeneğinin etkin olduğundan emin olun:
- Başarısız isteklerden birini seçin ve izini inceleyin.
- İzlemenin farklı aşamalarından yararlanın ve hatanın nerede olduğunu bulun meydana geldi.
Hatayı genellikle Hedef İstek Akışı Başlatıldı aşamasından sonra görürsünüz aşağıdaki gibidir:
Aşağıdakileri göz önünde bulundurun:
hata:
Proxy refused to create tunnel with response status 403
- İzlemedeki AX (Analytics Verilerinin Kaydedilen) Aşamasına gidin ve tıklayın.
Aşama Ayrıntıları'ndaki Yanıt Başlıkları bölümüne ilerleyin ve X-Apigee-fault-code ve X-Apigee-fault-source değerlerini aşağıda gösterilmiştir:
( resmi büyüt)
( resmi büyüt)
X-Apigee-fault-code ve X-Apigee-fault-source değerlerini görürsünüz.
protocol.http.ProxyTunnelCreationFailed
vetarget
olarak görünür. Bu hatanın, bu hatanın proxy tünelinden Beklenen ana makine üstbilgisi alınmadığından oluşturma işlemi başarısız oldu.Yanıt Başlıkları Değer X-Apigee-fault-code protocol.http.ProxyTunnelCreationFailed
X-Apigee-fault-source target
NGINX
NGINX erişim günlüklerini kullanarak hatayı teşhis etmek için:
- Private Cloud kullanıcısıysanız NGINX erişim günlüklerini kullanarak şunları yapabilirsiniz:
HTTP
503 Service Unavailable
ile ilgili önemli bilgileri belirler hatalar. NGINX erişim günlüklerini kontrol edin:
/opt/apigee/var/log/edge-router/nginx/ORG~ORG.PORT#_access_log
Konum: ORG, ORG ve PORT# gerçek değerlerle değiştirilir.
- Hata kodu içeren
503
hatası olup olmadığını görmek için arama yapın Belirli bir süre boyuncaprotocol.http.ProxyTunnelCreationFailed
( olup olmadığını kontrol edin) veya hâlâ başarısız olan bir istek varsa503
X-Apigee-fault-code'da herhangi bir
503
hatası bulursanızprotocol.http.ProxyTunnelCreationFailed
değeriyle eşleşiyorsa ve X-Apigee-fault-source. değerinin değerini belirleyin.NGINX erişim günlüğünden örnek 503 hatası:
NGINX erişim günlüğünden yukarıdaki örnek giriş, X- Apigee-fault-code ve X-Apigee-fault-source:
Yanıt Başlıkları Değer X-Apigee-fault-code protocol.http.ProxyTunnelCreationFailed
X-Apigee-fault-source target
Neden: Proxy, 403 yanıt durumuyla tünel oluşturmayı reddetti
Teşhis
- İzleme Aracı veya NGINX erişim günlüklerini kullanarak
503 Service Unavailable
için Hata Kodunu ve Hata Kaynağını aşağıda açıklandığı şekilde belirleyin Yaygın teşhis adımları. - Hata Mesajını inceleyin ve durum kodunu belirleyin.
tünel oluşturma hatası nedeniyle
faultstring
içinde belirtilir. - Bu senaryoda, durum kodu
403
şeklindedir. Bu, Yasak anlamına gelir. - Bu, tüneli oluşturmak için yeterli hak veya ayrıcalık olmadığı anlamına gelir. Bu genellikle erişimi kontrol eden herhangi bir güvenlik duvarı veya EKL (Erişim Kontrol Listesi) kısıtlaması varsa kullanılmasını engeller.
- Arka uç sunucunuzda yapılandırılmış olan tüm güvenlik duvarı ve/veya EKL kısıtlamalarını tünel oluşturulmasını engelleyebilir.
- Güvenlik duvarı ve/veya EKL kısıtlamalarının türüne bağlı olarak sorunu düzeltmeniz gerekir sağlayabilir.
Bu sorunu nasıl gidereceğinizi ve çözeceğinizi açıklamak için güvenlik duvarı kısıtlaması örneğini ele alalım. sorun:
Senaryo: Arka uç sunucusundaki güvenlik duvarı kısıtlaması, Ana Makine Başlığının her zaman arka uç sunucu ana makine adını içermelidir
Apigee Edge tarafından iletilen Ana Makine Başlığını belirlemek için aşağıdaki yöntemlerden birini kullanabilirsiniz:
Trace
Trace'i kullanarak Ana Makine Üstbilgisini belirlemek için:
faultstring
içindekiProxy refused to create tunnel with response status 403
öğesinin, aşağıda açıklandığı gibi iz özelliğini kullanarak olduğunu doğrulayın: Yaygın teşhis adımları.- Hedef İstek Akışı Başlatıldı aşamasına gidin ve İstek Başlıkları
- Ana makine üst bilgisinde belirtilen Request Headers (İstek Başlıkları) bölümüne gidin.
- Host (Ana makine) üstbilgisinde proxy ana makine adı varsa bu hatanın nedeni nedir?
- Bunun nedeni, güvenlik duvarının arka uç sunucusunda yalnızca Ana Makine Üstbilgisi, arka uç sunucunun adını içeriyorsa istek yapar.
- Bu nedenle, proxy sunucu tüneli arka uç sunucusuyla oluşturmaya çalıştığında
hata ile başarısız oluyor
Proxy refused to create tunnel with response status 403
.Ana Makine Başlığında proxy ana makine adının bulunduğunu gösteren örnek iz
( resmi büyüt)
Yukarıda gösterilen örnek izde, Ana Makine Başlığının proxy ana makinesinin adı
www.proxyserver.com.
arka uç sunucusunda yalnızca Ana Makine Üstbilgisi'nde yer alacak arka uç sunucu ana bilgisayar adını ayarladığınızda, hataProxy refused to create tunnel with response status 403
.
tcpdump
tcpdump kullanarak Ana Makine Üstbilgisini belirlemek için
Şu kaynaktan gelen istekler için proxy sunucuda bir
tcpdump
yakalayın: Apigee Edge'in Mesaj İşlemci bileşenine aşağıdaki komut verilir:tcpdump -i any -s 0 host MP_IP_ADDRESS -w FILE_NAME
tcpdump
komutunu kullanma hakkında daha fazla bilgi için bkz. tcpdump.tcpdump
verilerini şunu kullanarak analiz edin: Wireshark aracı veya benzeri bir araç aracını kullanın.Elektronik tablo kullanarak yapılmış tcpdump komutunu kullanın.
( resmi büyüt)
- 13, 14 ve 15 numaralı paket numaraları İleti'nin İşlemci, üç yönlü TCP üzerinden proxy sunucusuyla bağlantı kuruyor çok önemlidir.
- 16 paketinde, Mesaj İşleyici proxy ana makineye bağlanmıştır
httpbin.org
(yukarıdaki örnekte gösterilmektedir). 16. paketi seçin ve paketin içeriğini ayrıntılı olarak inceleyin ve ileti tarafından proxy sunucuya iletilmekte olan Ana Makine Üstbilgisi İşleyen.
- Yukarıdaki örnekte, Ana Makine Üstbilgisi
httpin.org
, proxy sunucusunun ana makine adıdır. Bu nedenle, proxy sunucu yukarıdaki Ana Makine Başlığını ileterek arka uç sunucusuyla tüneli oluşturunhttpin.org
,Proxy refused to create tunnel with response status 403
hatasıyla başarısız oluyor.
Çözünürlük
Senaryo: Proxy sunucudaki güvenlik duvarı kısıtlaması, Ana Makine Başlığının arka uç sunucu ana makine adını her zaman içermelidir
Bu hatanın, arka uç sunucusundaki güvenlik duvarının Ana Makine Üstbilgisinin her zaman arka uç sunucusunu içermesini bekleyecek şekilde yapılandırılmıştır ana makine adına karşılık gelmelidir, ancak Mesaj İşleyici proxy sunucu ana makine adını gönderir, ardından ileti sorunu çözmek için aşağıdaki adımları uygulayın:
use.proxy.host.header.with.target.uri
özelliğini Aşağıdaki örnekte gösterildiği gibi TargetEndpoint:Örnek TargetEndpoint yapılandırması:
<TargetEndpoint name="default"> <HTTPTargetConnection> <URL>https://mocktarget.apigee.net/json</URL> <Properties> <Property name="use.proxy.host.header.with.target.uri">true</Property> </Properties> </HTTPTargetConnection> </TargetEndpoint>
.İlgili diğer özelliklerin yönlendirme proxy'si, Mesaj İşleyici'de aşağıdaki gibi yapılandırılır:
- Mesaj İşleyicilerin her birinde
/opt/apigee/customer/application/message-processor.properties
dosyasını inceleyin. Aşağıdaki özelliklerin kullanım alanınıza veya gereksinimlerinize göre ayarlandığından emin olun:
Mülkler için örnek değerler:
conf_http_HTTPClient.use.proxy=true conf/http.properties+HTTPClient.proxy.type=HTTP conf/http.properties+HTTPClient.proxy.host=PROXY_SERVER_HOST_NAME conf/http.properties+HTTPClient.proxy.port=PORT_# conf/http.properties+HTTPClient.proxy.user=USERNAME conf/http.properties+HTTPClient.proxy.password=PASSWORD
.
- Mesaj İşleyicilerin her birinde
Teşhis bilgileri toplanmalıdır
Yukarıdaki talimatları uygulamanıza rağmen sorun devam ederse aşağıdaki Apigee Edge Destek Ekibi ile iletişime geçin:
Private Cloud kullanıcısıysanız aşağıdaki bilgileri sağlayın:
- Başarısız istekler için tam hata mesajı gözlemlendi
- Ortam adı
- API proxy paketi
- API istekleri için izleme dosyası
NGINX erişim günlükleri
/opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_log
Konum: ORG, ENV ve PORT# gerçek değerlerle değiştirilir.
Mesaj İşleyici sistem günlükleri
/opt/apigee/var/log/edge-message-processor/logs/system.log