golang で gRPC クライアントの http ホスト ヘッダーをオーバーライドするのは一般的な要件です。 gRPC は、高性能のクロスランゲージ リモート プロシージャ コール フレームワークです。gRPC を使用して通信する場合、http リクエストのホスト ヘッダーのカスタマイズが必要になる場合があります。 PHP エディター Xigua は、ビジネス ニーズをより適切に満たすために、この関数を golang で実装する方法を紹介します。
gRPC クライアント経由で接続経由でリクエストを送信しました。 リーリー
サーバー側から見ると、http.request のhost が正確な
hostname:port であることがわかります。次に、私のnginxサーバーの設定は次のとおりです
リーリー
grpc.Dial(xxx:port) でどのホスト名を使用しても、正常に動作します。ただし、
を入れると、
リーリー
が返されます。 リーリー
ホスト名を手動で入力する必要があるのは、grpc.Dial のホスト名が固定されているためです。また、
port の後に RESTful API のルーティング パスが続くため、リバース プロキシを実行するために別の場所を使用することはできません。
(2009/23) 更新: http2 のホスト ヘッダーが
:Authority 擬似ヘッダーに置き換えられていることが判明しました。
:host ヘッダーを使用せず、代わりに
:authority 擬似ヘッダーを使用します。このヘッダーの値はここで決定されます:
https://github .com/grpc/grpc-go/blob/aa6ce35c792863305e0f42acc27f2c7153275f89/clientconn.go#L1942
デフォルトでは、
:authority ヘッダーに使用される値は、
url://authority/endpoint 形式のユーザー ダイヤル ターゲットのエンドポイント部分です。
authority をオーバーライドするダイヤルアップ オプションもサポートしています。
https://pkg.go.dev/google.golang.org/grpc#WithAuthorityを参照してください。ただし、このダイヤル オプションは、TLS ハンドシェイク中に使用される ServerName 値をオーバーライドすることにも注意してください。
以上がgolangでgRPCクライアントのhttpホストヘッダーをオーバーライドするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。