curl, .NET ve konteynerler arasında NO_PROXY uyumluluğu
Paylaşılan doğrudan yönlendirme politikasını küçük bir temsili hedef kümesiyle istemciye özgü yapılandırmaya dönüştürün.
Bir ekip paylaşılan bir ortam dosyasına tek bir atlama dizesi koyar. curl doğrudan gider, başka bir uygulama proxy kullanır ve bir konteyner yine farklı davranır. Paylaşılan dosya aynı karakterleri dağıttı. Tek bir paylaşılan ayrıştırıcı dağıtmadı.
Kalıcı olan nesne politikadır: hangi hedefler doğrudan olmalı ve hangi koşullarda? Bunu her programın ihtiyaç duyduğu dizeden ayrı tutun.
Önce beklenen rotaları yazın
Yalnızca kolay başarıları değil sınır durumlarını da içeren temsili adresler kullanın:
| Hedefin biçimi | Politika sahibine soru |
|---|---|
| Üst alan adı | Atlansın mı, yoksa yalnızca alt alan adları mı? |
| Bir alt alan adı | Aynı rotayı devralır mı? |
| Birebir özel IP | Bu adrese bu istemciden doğrudan erişilebilir mi? |
| Aynı hizmet, ana makine adı altında | Ada dayalı ve adrese dayalı istekler örtüşmeli mi? |
| Başka bir hizmet bağlantı noktası | İstisna ana makineyi mi yoksa tek bir dinleyiciyi mi kapsıyor? |
Ardından tüketicileri belirleyin: imaj çeken daemon, konteynerin içindeki program, bir dilin HTTP kitaplığı ve etkileşimli bir tarayıcı ayrı girdiler olabilir. Docker istemci proxy yapılandırması, içerideki her istemciyi aynı eşleştirme kurallarını uygulamaya zorlamadan konteynerin ortam değerlerini doldurabilir.
Körü körüne kopyalamak yerine çevirin
Gerçek bir farkın belgelenmiş bir örneği, üst alan adı sınırıdır. curl'ün alan adı istisnası, adlandırılmış alan adını ve eşleşen alt alan adlarını kapsar. .NET'in ortam politikası, çıplak adı baştaki noktalı alt alan adı biçiminden ayırır. „Her zaman başta nokta ekle“ biçimindeki evrensel bir kural iki politikayı da güvenilir biçimde ifade edemez.
IP aralığı desteği de tüketiciye ve sürümüne bağlıdır. Yeni bağımsız curl bulunan bir makine, eski bir libcurl'e bağlanmış uygulamayı ya da tamamen başka bir kitaplık kullanan istemciyi çalıştırabilir. İşletim sistemi sürümü tam bir istemci envanteri değildir.
Her tüketici için desteklenen yapılandırma arayüzünü ve amaçlanan rotaların en küçük ifadesini kaydedin. Kısa ve açık bir ana makine listesi, anlamını kimsenin açıklayamadığı akıllı bir kalıptan daha iyi olabilir.
Yapılandırma kanıtını bağlantı kanıtından ayrı tutun
Ayrıştırılmış bir ayar veya yönlendirme kararı API'si programın neyi seçtiğini gösterebilir. İsteğin sonucu ise o rotanın kullanılabilir olup olmadığını gösterir. .NET'te HttpClient.DefaultProxy.IsBypassed, varsayılan proxy kullanılan politika olduğunda bu yapılandırma tarafı denetimi sağlar. Erişilemeyen doğrudan bir hizmeti yalnızca istek zaman aşımına uğradı diye atlama ayrıştırıcısı arızası olarak teşhis etmeyin.
Bir istemciyi veya temel imajı güncellerken sınır hedeflerini koruyun. Dosyada neden birbirine benzeyen iki alan adı girdisi olduğunu tüm ekibin yeniden keşfetmesine gerek kalmadan gelecekteki uyumluluk değişikliklerini görünür kılarlar.