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 那么自动 fallback 到下一个,其中 direct 的作用是直接回源(源指的是比如 GitHub 这种代码托管服务)拉取代码。

如果你有公司内部的模块需要服务到,比如通过了 GOPRIVATE 等环境变量来指定,那么你是必须在 GOPROXY 中包含 direct 的,否则 GOPRIVATE 之类的不能正常工作。

此外你的环境变量配置的确存在问题,主要是 https_proxy 这个环境变量配置错了。如果你配置了 https_proxy,那么 Go HTTP client 是会优先使用它而不是 http_proxy,此时使用 https_proxy 时会默认它的值是一个有正常签名 TLS 证书的可以通过 HTTPS 协议访问到的 URL,可你的是一个 http:// 开头的错误 URL。换句话说你这么配置的话 Go HTTP client 所有请求都会失败,因为连 TLS 握手阶段都过不去,我之前在 goproxy/goproxy.cn#71 (comment) 这里也有提到过。

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。