跳转到内容
GitHub

配置 Go

通过 GOPROXY 让 Go Modules 经过 Depsilo /go/ 路由,并保留 GOSUMDB 校验。

之前https://proxy.golang.org
之后http://localhost:23333/go/

Go 通过 GOPROXY 指向 Depsilo;模块校验仍由 GOSUMDB 和 go.sum 完成,Depsilo 不会替代它们。

终端窗口
go env -w GOPROXY=http://localhost:23333/go/,direct
go env GOPROXY

保留 GOSUMDB,让 Go 继续校验公共模块的 checksum。

临时查询而不修改持久配置(这里只获取版本列表,不验证模块下载):

终端窗口
GOPROXY=http://localhost:23333/go/ go list -m -versions rsc.io/quote
  1. 确认实例就绪

    终端窗口
    curl -fsS http://localhost:23333/ready
  2. 从项目外取回固定版本的模块

    终端窗口
    tmp_dir="$(mktemp -d)"
    (cd "$tmp_dir" && GOMODCACHE="$tmp_dir/gomod" \
    GOPROXY=http://localhost:23333/go/ \
    go mod download rsc.io/[email protected])

    每次运行都会新建临时目录和空的客户端模块缓存,不修改当前项目,也不清空原有缓存; 不再需要时可删除本次的 $tmp_dir。验证时只指定 Depsilo 的代理 URL,不附加 ,direct,且不关闭 GOSUMDB,确保失败不会因回退到上游而被掩盖。上面的 ,direct 持久配置供日常使用,其回退行为见提示说明。

  3. 在 Admin 中确认流量

    在 Access logs 中核对 /go/ 请求、该版本对应的 @v/*.mod、@v/*.zip 等文件及缓存结果;Cache 页面也可核对对应对象。下载成功或变快,不能单独证明请求 经过 Depsilo。若服务端尚未缓存该版本,第一次会回源;再次以新的临时客户端 缓存运行相同命令,才能验证后续命中。如果服务端原本已有缓存,第一次也可能命中。

不需要,除非你的组织自建了校验数据库。保留默认设置可以继续验证公共模块的 checksum。

GOPRIVATE / GONOSUMDB 决定哪些模块跳过公共校验与代理。Depsilo 只负责代理,不会修改这些客户端策略;具体配置以团队约定为准。