gRPC-Go: Proxy-Erkennung mit WithNoProxy umgehen
Verwenden Sie grpc.WithNoProxy für einen internen ClientConn und behalten Sie die vorgesehenen Transport-Credentials bei.
Wenn ein interner gRPC-Dienst direkt erreicht werden soll, bietet gRPC-Go für diesen Weg eine Verbindungsoption:
conn, err := grpc.NewClient(
"dns:///rpc.internal.example:443",
grpc.WithTransportCredentials(transportCredentials),
grpc.WithNoProxy(),
)
Der grpc-Import ist google.golang.org/grpc. transportCredentials ist die vorhandene credentials.TransportCredentials-Konfiguration der Anwendung. Behandeln Sie err und schließen Sie conn über den normalen Client-Lebenszyklus.
WithNoProxy deaktiviert die Proxy-Nutzung für diesen ClientConn. Andere Clients und die Proxy-Umgebung des Prozesses bleiben unverändert. Das Ziel muss direkt aus dem Netzwerk der Anwendung erreichbar sein.
Die Option wird ignoriert, wenn WithDialer oder WithContextDialer einen eigenen Verbindungsweg bereitstellt; dieser Dialer entscheidet über das Routing. Die Upstream-API ist als experimentell gekennzeichnet, prüfen Sie sie daher gegen die installierte grpc-go-Version.
NewClient erstellt einen Client-Kanal, ohne zu belegen, dass eine Netzwerkverbindung zustande gekommen ist. Erst das folgende RPC- oder Verbindungsstatus-Ergebnis liefert diesen Nachweis. Das Umgehen eines Proxys erfordert nicht das Abschalten von TLS.