gRPC 오류: "서버 머리말 수신 전에 연결이 닫힘" 해결
제공된 코드 조각을 사용하여 gRPC 서버에 연결을 시도하는 경우:
func newClient() *dgo.Dgraph { d, err := grpc.Dial("localhost:9080", grpc.WithInsecure()) if err != nil { log.Fatal(err) } return dgo.NewDgraphClient( api.NewDgraphClient(d), ) }
다음과 같은 상황이 발생할 수 있습니다. 오류:
rpc error: code = Unavailable desc = connection closed before server preface received
근본 원인
이 오류는 일반적으로 TLS(전송 계층 보안)가 활성화된 상태로 서버가 실행 중이지만 클라이언트가 연결을 시도할 때 발생합니다. TLS를 사용하지 않고.
해결책
해결하려면 이 문제를 해결하려면 다음 사항을 확인해야 합니다.
TLS 옵션이 클라이언트에서 올바르게 구성되어 있는지:
tlsConfig := &tls.Config{ Certificates: []tls.Certificate{myCertificate}, RootCAs: myCAPool, } tlsOpt := grpc.WithTransportCredentials(credentials.NewTLS(tlsConfig)) conn, err := grpc.DialContext(ctx, "<connection_string>", tlsOpt)
클라이언트 인증서는 클라이언트에서 사용됩니다. 연결:
클라이언트 연결에서 클라이언트 인증서를 활용하고 있는지 확인하세요.
클라이언트에서 TLS를 올바르게 구성하면 "연결이 닫히는 것을 방지할 수 있습니다." before server preface received" 오류가 발생하고 TLS 지원 서버에 성공적으로 연결됩니다.
위 내용은 gRPC 오류: '서버 서문을 받기 전에 연결이 닫혔습니다'를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!