Compatibilitat de NO_PROXY entre curl, .NET i contenidors
Convertiu una política compartida d'encaminament directe en una configuració específica del client amb un petit conjunt de destinacions representatives.
Un equip posa una cadena d'exclusió en un fitxer d'entorn compartit. curl va directe, una altra aplicació fa servir el proxy i un contenidor es comporta diferent una altra vegada. El fitxer compartit distribuïa els mateixos caràcters. Però no distribuïa un analitzador compartit.
L'objecte durador és la política: quines destinacions han de ser directes i en quines condicions? Manteniu-ho separat de la cadena que necessita cada programa.
Escriviu primer les rutes esperades
Feu servir adreces representatives, incloent-hi límits i no només èxits fàcils:
| Forma de la destinació | Pregunta per al propietari de la política |
|---|---|
| Domini pare | Ha de saltar-se, o només els seus fills? |
| Un subdomini | Hereta la mateixa ruta? |
| Una IP privada literal | Aquesta adreça és accessible directament des d'aquest client? |
| El mateix servei sota un nom d'amfitrió | Han de coincidir les peticions per nom i per adreça? |
| Un altre port de servei | L'excepció cobreix l'amfitrió o un sol oient? |
Després identifiqueu els consumidors: el dimoni que baixa una imatge, el programa dins del contenidor, una biblioteca HTTP d'un llenguatge i un navegador interactiu poden ser entrades separades. Una configuració de proxy del client Docker pot omplir valors d'entorn del contenidor sense que cada client de dins hagi d'implementar les mateixes regles de coincidència.
Traduïu en lloc de copiar cegament
Un exemple documentat d'una diferència real és el límit del domini pare. L'exclusió de domini de curl cobreix el domini anomenat i els fills coincidents. La política d'entorn de .NET distingeix el nom nu de la forma de subdomini amb punt inicial. Una regla universal d'afegir sempre un punt inicial no pot expressar les dues polítiques de manera fiable.
El suport de rangs IP també depèn del consumidor i de la seva versió. Una màquina amb un curl autònom nou encara pot executar una aplicació enllaçada amb un libcurl més antic, o un client que faci servir una biblioteca completament diferent. La versió del sistema operatiu no és un inventari complet de clients.
Per a cada consumidor, anoteu la interfície de configuració admesa i l'expressió més petita de les rutes previstes. Una llista curta i explícita d'amfitrions pot ser millor que un patró enginyós el significat del qual ningú no pot explicar.
Manteniu les proves de configuració separades de les proves de connexió
Una configuració analitzada o una API de decisions d'encaminament pot mostrar què ha seleccionat el programa. El resultat d'una petició mostra després si aquella ruta era utilitzable. A .NET, HttpClient.DefaultProxy.IsBypassed proporciona aquesta comprovació del costat de la configuració quan el proxy per defecte és la política en ús. No diagnostiqueu un servei directe inabastable com a fallada de l'analitzador d'exclusió només perquè la petició ha expirat.
Conserveu les destinacions límit en actualitzar un client o una imatge base. Fan visibles els canvis de compatibilitat futurs sense que tot l'equip hagi de redescobrir per què el fitxer conté dues entrades de domini semblants.