NO_PROXY kompatibilnost kroz curl, .NET i kontejnere
Pretvorite zajedničku politiku direktnog usmeravanja 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 proksi, a kontejner se opet ponaša drugačije. Zajednička datoteka distribuirala je iste znakove. Nije distribuirala jedan zajednički parser.
Trajni objekat je politika: koja odredišta treba da budu direktna i pod kojim uslovima? Držite to odvojeno od niza koji je potreban svakom programu.
Prvo zapišite očekivane rute
Koristite reprezentativne adrese, uključujući granične slučajeve, a ne samo lake uspehe:
| Oblik odredišta | Pitanje za vlasnika politike |
|---|---|
| Roditeljski domen | Treba li ga zaobići, ili samo njegovu decu? |
| Poddomen | Nasleđuje li istu rutu? |
| Doslovna privatna IP adresa | Da li je ta adresa direktno dostupna sa ovog klijenta? |
| Ista usluga pod imenom hosta | Treba li da se zahtevi po imenu i po adresi poklapaju? |
| Drugi port usluge | Da li izuzetak pokriva host ili jedan slušalac? |
Zatim identifikujte potrošače: demon koji povlači imidž, program unutar kontejnera, HTTP biblioteka nekog jezika i interaktivni pregledač mogu biti odvojene stavke. Konfiguracija proksija Docker klijenta može popuniti vrednosti okruženja kontejnera bez toga da svaki klijent unutra mora da primenjuje ista pravila poklapanja.
Prevodite umesto da slepo kopirate
Jedan dokumentovan primer stvarne razlike je granica roditeljskog domena. Izuzeće domena u curl-u pokriva navedeni domen i odgovarajuću decu. Politika okruženja .NET razlikuje golo ime od oblika poddomena sa vodećom tačkom. Univerzalno pravilo „uvek dodaj vodeću tačku“ ne može pouzdano izraziti obe politike.
Podrška za IP opsege takođe zavisi od potrošača i njegove verzije. Mašina sa novim samostalnim curl-om i dalje može pokretati aplikaciju povezanu sa starijom libcurl, ili klijenta koji koristi potpuno drugu biblioteku. Izdanje operativnog sistema nije potpun 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 lukavog obrasca čije značenje niko ne može objasniti.
Držite dokaze o konfiguraciji odvojeno od dokaza o vezi
Parsirano podešavanje ili API za odluku o rutiranju može pokazati šta je program izabrao. Ishod zahteva zatim pokazuje da li je ta ruta bila upotrebljiva. U .NET-u, HttpClient.DefaultProxy.IsBypassed pruža tu proveru sa strane konfiguracije kada je podrazumevani proksi politika koja se koristi. Ne dijagnostikujte nedostupnu direktnu uslugu kao kvar parsera zaobilaženja samo zato što je zahtev istekao.
Zadržite granična odredišta kada ažurirate klijenta ili osnovni imidž. Ona čine buduće promene kompatibilnosti vidljivim bez potrebe da ceo tim ponovo otkriva zašto datoteka sadrži dva slična unosa domena.