gRPC-Go: WithNoProxy로 프록시 검색 우회하기
내부 ClientConn에는 grpc.WithNoProxy를 사용하고 의도한 transport credentials는 그대로 유지합니다.
내부 gRPC 서비스에 직접 접근해야 한다면 gRPC-Go는 그 경로를 위한 연결 옵션을 제공합니다:
conn, err := grpc.NewClient(
"dns:///rpc.internal.example:443",
grpc.WithTransportCredentials(transportCredentials),
grpc.WithNoProxy(),
)
grpc 임포트는 google.golang.org/grpc입니다. transportCredentials는 애플리케이션의 기존 credentials.TransportCredentials 설정입니다. err를 처리하고 일반적인 클라이언트 수명 주기에 따라 conn을 닫으세요.
WithNoProxy는 이 ClientConn에 대해 프록시 사용을 비활성화합니다. 다른 클라이언트와 프로세스의 프록시 환경은 그대로 둡니다. 대상은 애플리케이션 네트워크에서 직접 도달할 수 있어야 합니다.
WithDialer 또는 WithContextDialer가 사용자 지정 연결 경로를 제공하면 이 옵션은 무시됩니다. 라우팅 결정은 해당 다이얼러가 담당합니다. 업스트림 API는 실험적 상태로 표시되어 있으므로 설치된 grpc-go 버전과 대조해 확인하세요.
NewClient는 네트워크 연결이 성공했음을 입증하지 않은 채 클라이언트 채널을 만듭니다. 이후의 RPC나 연결 상태 결과가 그 증거를 제공합니다. 프록시를 우회한다고 해서 TLS를 비활성화할 필요는 없습니다.