php Editor Zimo は、インターネットを使用しているときに、502 Bad Gateway プロンプトに遭遇することがあります。このエラー メッセージは、ゲートウェイ サーバーとアップストリーム サーバーの間に通信の問題があり、その結果リクエストが完了しないことを意味します。考えられる原因の 1 つは、IPSec トンネルの net/http GET 障害です。このエラーはわかりにくいかもしれませんが、その原因と修正方法を理解することで、問題をすぐに解決し、引き続きインターネットの利便性を享受できます。
Windows 上の
ipsecトンネル(vpn)経由でnet/http
を使用してリモートのget
リクエストを発行します。 package の場合、get
リクエストは失敗し、応答コードは 502 badgateway
でした。ただし、同じ headers
、uri
、method
を使用して curl
によって送信されたリクエストは正常に機能します。 go
ソースコードは次のとおりです:
トラフィックのパケット キャプチャを分析した結果、vpn インターフェイス
は通常 curl
によって送信されたリクエストをキャプチャできるが、get
はキャプチャできないことが判明しました。 go(net /http)
から取得しました送信されたリクエストは失われました。
それは、フレームワークがパケットを送信するために間違ったインターフェイスを選択したことが原因である可能性があると思います。
そこで、正しいローカル ネットワーク インターフェイスを見つけて、その localaddr
を指定して、次のように get
リクエストを送信しようとします。
リーリー
client を
client 関数に置き換えると、
get リクエストが最終的に機能します。
クライアント := &http.client{} =>
クライアント、エラー := client(uri)
それでは、私の質問は、なぜ golang がリクエストを自動的に送信するために正しいローカル ネットワーク インターフェイスを選択しないのかということです。
net.dial#DialContext、アドレスが
Visual Studio Code 設定に変更されていることがわかりました。プロキシアドレス。プロキシ サーバーはアプリケーションのリクエストを処理できません。
net.dial は期待どおりに動作します。
###大事なこと###
vscode
IDE でアプリケーションを開発しますプロキシの問題。言い換えれば、
IDE エージェントがその目的で構築されたジョブを実行できるとは思ってもいませんでした。拡張機能または IDE 自体がこのプロキシ設定を使用するため、これは理にかなっていますが、
golang プロジェクトのデバッグでもこれを使用しているため、本当に混乱しています。
以上が502 不正なゲートウェイ: IPSec トンネルの net/http GET が失敗しましたの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。