ホームページ >バックエンド開発 >Golang >Docker 化された Dgraph サーバーに接続すると、gRPC クライアントが「サーバー プレフェイスを受信する前に接続が閉じられました」というメッセージが表示されるのはなぜですか?

Docker 化された Dgraph サーバーに接続すると、gRPC クライアントが「サーバー プレフェイスを受信する前に接続が閉じられました」というメッセージが表示されるのはなぜですか?

DDD
DDDオリジナル
2024-12-28 00:57:10583ブラウズ

Why Does My gRPC Client Get

gRPC エラー: 「サーバー プレフェイスを受信する前に接続が閉じられた」の解決

この問題では、開発者が試行したときに断続的な gRPC エラーが発生します。 Docker にデプロイされた Dgraph サーバーにクエリを実行します。 「サーバー プレフェイスを受信する前に接続が閉じられました」というエラーは、接続セットアップに問題があることを示唆しています。

エラーの根本原因は、多くの場合、サーバーの TLS 構成とクライアントの接続設定の不一致にあります。この場合、サーバーが 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)

クライアント接続でクライアント証明書を使用していることを確認してください。これらの設定が完了すると、クライアントはサーバーへの安全な接続を確立し、「接続が閉じられました」エラーが発生することなくクエリを実行できるようになります。

以上がDocker 化された Dgraph サーバーに接続すると、gRPC クライアントが「サーバー プレフェイスを受信する前に接続が閉じられました」というメッセージが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。