localhostで実行されるEnvoyプロキシはカールではうまく機能しますが、golang "hey"ツールではタイムアウトします。

localhostで実行されるEnvoyプロキシはカールではうまく機能しますが、golang "hey"ツールではタイムアウトします。

私はいくつかのEnvoyチュートリアルを見ています(それが何であるかわからない場合は、おそらく重要ではありません)。私はUbuntu VM(Windows 11ホスト)と会社のファイアウォールの背後でこれを行っています。

特定のバージョンのEnvoyを動的にインストールして実行するためのツール「func -e」コマンドラインを実行して、特定のバージョンのEnvoyを実行します。出力はポート 10000 でリッスンしていることを示します。

別のシェルで ""を実行するcurl http://localhost:10000と、Envoyプロキシの期待される出力が返されます。

私は同じシェルで単純なロードテストツール「hey」というgolangツールを試しました。アクセスしたいURLを指定すると、結果が返されます。この例では、次の簡単な構成で実行します。

hey -n 1 -c 1 http://localhost:10000

これは、ワーカーに要求を送信することを意味します。これは、事前設定された20秒のタイムアウト後にタイムアウトします。

まず、VPNからノートブックを切断し、このテストを実行すると正常に動作します。

問題は、シェルのプロキシ設定、特に「no_proxy」変数に関連しているようです。カンマ区切りリストには「localhost」と「127.0.0.1」があります(変数「NO_PROXY」の値が同じ場合)。

答え1

重要な場合は問題を解決できました。何らかの理由で、仮想マシンに完全に空の/ etc / hostsファイルがあります。 localhostのエントリを追加したら、「hey」が正しく機能しました。私は "curl"がこれに問題がないことが奇妙だと思います。

関連情報