NO_PROXY-kompatibilitet på tvers av curl, .NET og containarar
Gjer ein delt policy for direkte ruting om til klientspesifikk konfigurasjon med eit lite sett representative destinasjonar.
Eit team legg éin omgåingsstreng i ei delt miljøfil. curl går direkte, eit anna program brukar proxyen, og ein container oppfører seg annleis igjen. Den delte fila distribuerte dei same teikna. Ho distribuerte ikkje éin delt parser.
Det varige objektet er policyen: kva destinasjonar skal vere direkte, under kva vilkår? Hald det skilt frå strengen kvart program treng.
Skriv dei forventa rutene først
Bruk representative adresser, inkludert grensetilfelle og ikkje berre enkle suksessar:
| Destinasjonsform | Spørsmål til policyeigaren |
|---|---|
| Overordna domene | Skal det omgåast, eller berre borna? |
| Eit underdomene | Arvar det same ruta? |
| Ein litterær privat IP | Er den adressa direkte nåbar frå denne klienten? |
| Same teneste under eit vertsnamn | Skal namnebaserte og adressebaserte førespurnader stemme overeins? |
| Ein annan tenesteport | Dekkjer unntaket verten eller éin lyttar? |
Identifiser så forbrukarane: daemonen som hentar eit image, programmet inne i containeren, eit HTTP-bibliotek for eit språk og ein interaktiv nettlesar kan alle vere separate oppføringar. Ein Docker-klient sin proxykonfigurasjon kan fylla miljøverdiane til containeren utan å tvinge kvar klient inni til å implementere dei same matchingsreglane.
Omset i staden for å kopiere blindt
Eitt dokumentert døme på ein reell skilnad er grensa for overordna domene. Domeneunntaket til curl dekkjer det namngjetne domenet og samsvarande born. Miljøpolicyen til .NET skil det berre namnet frå underdomeforma med leiande punktum. Ein universell regel om å „alltid leggje til eit leiande punktum“ kan ikkje uttrykkje begge policyane påliteleg.
Støtte for IP-område avheng òg av forbrukaren og versjonen. Ein maskin med ein ny frittståande curl kan framleis køyre eit program som er lenkja mot ein eldre libcurl, eller ein klient som brukar eit heilt anna bibliotek. Operativsystemutgåva er ikkje ei fullstendig klientoversikt.
For kvar forbrukar, registrer det støtta konfigurasjonsgrensesnittet og den minste uttrykkinga av dei tiltenkte rutene. Ei kort eksplisitt vertsliste kan vere betre enn eit smart mønster der ingen kan forklare tydinga.
Hald konfigurasjonsprov skilt frå tilkoplinggsprov
Ei tolka innstilling eller eit rutingsavgjerds-API kan vise kva programmet valde. Eit førespurnadsutfall viser så om ruta var brukbar. I .NET gir HttpClient.DefaultProxy.IsBypassed den konfigurasjonssidige kontrollen når standardproxyen er policyen som er i bruk. Ikkje diagnostiser ei utilgjengeleg direkte teneste som ein omgåingsparserfeil berre fordi førespurnaden fekk tidsavbrot.
Behald grensedestinasjonane når du oppdaterer ein klient eller eit basisimage. Dei gjer framtidige kompatibilitetsendringar synlege utan at heile teamet må oppdage på nytt kvifor fila inneheld to liknande domeneoppføringar.