NO_PROXY kompatibilnost kroz curl, .NET i kontejnere
Pretvorite zajedničku politiku izravnog 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 izravno, druga aplikacija koristi proxy, a kontejner se opet ponaša drugačije. Zajednička datoteka distribuirala je iste znakove. Ali nije distribuirala jedan zajednički parser.
Trajni objekt je politika: koja odredišta trebaju biti izravna i pod kojim uvjetima? Držite to odvojeno od niza koji svaki program treba.
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 njezinu djecu? |
| Poddomena | Nasljeđuje li istu rutu? |
| Doslovna privatna IP adresa | Je li ta adresa izravno dostupna s ovog klijenta? |
| Ista usluga pod imenom hosta | Trebaju li se zahtjevi prema imenu i prema adresi podudarati? |
| Drugi port usluge | Pokriva li izuzetak host ili jednog slušatelja? |
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. Izuzimanje domene u curl pokriva navedenu domenu i odgovarajuću djecu. Politika okruženja .NET razlikuje golo ime od oblika poddomene s vodećom točkom. Univerzalno pravilo uvijek dodaj vodeću točku ne može pouzdano izraziti obje politike.
Podrška za IP raspone također ovisi o potrošaču i njegovoj verziji. Stroj s novim samostalnim curl-om i dalje može pokretati aplikaciju povezanu sa starijim libcurl-om ili klijenta koji koristi potpuno drugu biblioteku. Izdanje operacijskog sustava nije potpuni popis klijenata.
Za svakog potrošača zabilježite podržano sučelje konfiguracije i najmanji izraz predviđenih ruta. Kratak eksplicitan popis hostova može biti bolji od pametnog uzorka čije značenje nitko ne može objasniti.
Držite dokaze o konfiguraciji odvojeno od dokaza o vezi
Parsirana postavka ili API za odluke o usmjeravanju može pokazati što je program odabrao. Ishod zahtjeva zatim pokazuje je li ta ruta bila upotrebljiva. U .NET-u, HttpClient.DefaultProxy.IsBypassed pruža tu provjeru na strani konfiguracije kada je zadani proxy politika koja se koristi. Ne dijagnosticirajte nedostupnu izravnu uslugu kao kvar parsera zaobilaženja samo zato što je zahtjev istekao.
Zadržite granična odredišta pri ažuriranju klijenta ili osnovne slike. Ona čine buduće promjene kompatibilnosti vidljivima bez potrebe da cijeli tim ponovno otkrije zašto datoteka sadrži dva slična unosa domene.