banner
biuaxia

biuaxia

"万物皆有裂痕,那是光进来的地方。"
github
bilibili
tg_channel

GOPROXY変数のdirectの役割は何ですか

title: GOPROXY 変数の direct の役割は何ですか
date: 2021-11-17 08:53:00
toc: true
category:

  • Golang
    tags:
  • golang
  • Golang
  • 転載
  • Go
  • go
  • goproxy
  • GOPROXY
  • direct
  • 役割
  • 変数

この記事は、GOPROXY 変数の direct の役割は何ですか・Issue #21・goproxy/goproxyから転載されました。


現在、このプロジェクトを使用して Go プロキシを構築していると、GORPOXY 変数をhttps://goproxy.cn,direct に設定すると、golang.org のパッケージはプロキシを経由せずに直接接続され、最終的にタイムアウトします。direct を削除すると、すべて正常に動作します。以下はプロキシプログラムのビルドコードです。何か間違っていますか?

SnipasteGOPROXY環境変数のカンマ区切りリストの役割は、前のリクエストが 404 または 410 を返した場合、自動的に次のリクエストにフォールバックすることです。その中で、direct の役割は、直接ソース(ソースは、GitHub などのコードホスティングサービスのことです)からコードを取得することです。

もし、会社内のモジュールをサービスとして提供する必要がある場合、たとえばGOPRIVATEなどの環境変数を使用して指定する場合、GOPROXYには必ず direct を含める必要があります。そうしないと、GOPRIVATEなどが正常に機能しません。

また、環境変数の設定に問題があるようです。主な問題は、https_proxyという環境変数の設定が間違っていることです。https_proxyを設定した場合、Go の HTTP クライアントはhttp_proxyではなく、https_proxyを優先して使用します。この場合、https_proxyを使用すると、正常に署名された TLS 証明書を持つ HTTPS プロトコルでアクセスできる URL の値がデフォルトになりますが、あなたの場合はhttp://で始まる間違った URL です。つまり、このように設定すると、Go の HTTP クライアントのすべてのリクエストが失敗します。TLS のハンドシェイク段階すら通過できないためです。以前、goproxy/goproxy.cn#71 (comment)で言及したこともあります。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。