NO_PROXY kompatibilnost kroz curl, .NET i kontejnere
Pretvorite zajedničku politiku direktnog usmjeravanja u konfiguraciju specifičnu za klijenta koristeći mali skup reprezentativnih odredišta.
Tim stavlja jedan niz za zaobilaženje u zajedničku datoteku okruženja. curl ide direktno, druga aplikacija koristi proxy, a kontejner se opet ponaša drugačije. Zajednička datoteka je distribuirala iste znakove. Ali nije distribuirala jedan zajednički parser.
Trajni objekt je politika: koja odredišta treba da budu direktna i pod kojim uslovima? Držite to odvojeno od niza koji svaki program zahtijeva.
Prvo zapišite očekivane rute
Koristite reprezentativne adrese, uključujući granice, a ne samo lake uspjehe:
| Oblik odredišta | Pitanje za vlasnika politike |
|---|---|
| Matična domena | Treba li je zaobići, ili samo njenu djecu? |
| Poddomena | Nasljeđuje li istu rutu? |
| Doslovna privatna IP adresa | Je li ta adresa direktno dostupna sa ovog klijenta? |
| Ista usluga pod imenom hosta | Treba li se zahtjevi zasnovani na imenu i na adresi slagati? |
| Drugi port usluge | Pokriva li izuzetak host ili jedan slušalac? |
Zatim identificirajte potrošače: demon koji povlači sliku, program unutar kontejnera, HTTP biblioteka jezika i interaktivni preglednik mogu svi biti odvojeni unosi. Proxy konfiguracija Docker klijenta može popuniti vrijednosti okruženja kontejnera bez da svaki klijent unutra mora primijeniti ista pravila podudaranja.
Prevodi, umjesto da slijepo kopiraš
Jedan dokumentirani primjer stvarne razlike je granica matične domene. Isključenje domene u curl pokriva navedenu domenu i odgovarajuću djecu. Politika okruženja .NET razlikuje golo ime od oblika poddomene s vodećom tačkom. Univerzalno pravilo uvijek dodaj vodeću tačku ne može pouzdano izraziti obje politike.
Podrška za IP raspone također zavisi od potrošača i njegove verzije. Mašina s novim samostalnim curl-om i dalje može pokretati aplikaciju povezanu sa starijim libcurl-om, ili klijenta koji koristi potpuno drugu biblioteku. Izdanje operativnog sistema nije potpuni popis klijenata.
Za svakog potrošača zapišite podržani interfejs konfiguracije i najmanji izraz predviđenih ruta. Kratka eksplicitna lista hostova može biti bolja od pametnog uzorka čije značenje niko ne može objasniti.
Držite dokaze o konfiguraciji odvojeno od dokaza o vezi
Parsirana postavka ili API za odluke o rutiranju može pokazati šta je program odabrao. Ishod zahtjeva zatim pokazuje da li je ta ruta bila upotrebljiva. U .NET-u, HttpClient.DefaultProxy.IsBypassed pruža tu provjeru sa strane konfiguracije kada je zadani proxy politika koja se koristi. Ne dijagnosticirajte nedostupnu direktnu uslugu kao kvar parsera zaobilaženja samo zato što je zahtjev istekao.
Zadržite granična odredišta prilikom ažuriranja klijenta ili osnovne slike. Ona čine buduće promjene kompatibilnosti vidljivim bez potrebe da cijeli tim ponovo otkrije zašto datoteka sadrži dva slična unosa domene.