搭建私有g(shù)oproxy

搭建私有g(shù)oproxy

由于眾所周知的原因,在大陸的網(wǎng)絡(luò)環(huán)境是無法訪問到golang.org等google的網(wǎng)站的。但在開發(fā)日常中使用的很多依賴包或系統(tǒng)包依賴都是在google的服務(wù)器上。為了解決無法加載依賴的問題,國(guó)內(nèi)也有很多種解決方案。一種是使用goproxy.io或七牛主導(dǎo)的goproxy.cn。
在企業(yè)里,有很多情況是生產(chǎn)網(wǎng)絡(luò)或測(cè)試網(wǎng)絡(luò)環(huán)境是無法正常訪問外網(wǎng)的,為了解決這個(gè)問題可能需要自己搭建一個(gè)proxy來管理依賴包。

搭建goprxoy

找一臺(tái)可以訪問外網(wǎng)的服務(wù)器。
下載goproxy源碼:

$ go get github.com/goproxy/goproxy
$ vim main.go

增加main.go文件:

package main
import (
    "net/http"
    "github.com/goproxy/goproxy"
)
func main() {
    http.ListenAndServe(":8080", goproxy.New())
}

在本機(jī)執(zhí)行:

$ export GOPROXY=https://127.0.0.0:8080
$ GO111MODULE=on go build

進(jìn)入/opt/data目錄可以看到拉取的依賴包緩存。

使用goproxy.cn

# Air
[air]
app_name = "goproxy-china"
debug_mode = true
address = "0.0.0.0:8080"
minifier_enabled = true
gzip_enabled = true
coffer_enabled = true
i18n_enabled = true
# Zerolog
[zerolog]
logger_level = "debug"
# Qiniu Cloud Kodo
[kodo]
endpoint = "s3-cn-north-1.qiniucs.com"
access_key = "<ACCESS_KEY>" # qiniu access_key
secret_key = "<SECRET_KEY>" # qiniu secret_key
bucket_name = "go-proxy"
bucket_endpoint = "go-proxy.s3-cn-north-1.qiniucs.com"
# Goproxy
[goproxy]
go_bin_name = "go"
local_cache_root = "/opt/data"

設(shè)置好配置文件后,直接啟動(dòng)就好了:

$ go build
$ ./goproxy.cn

在開普勒云上部署goproxy

首先依然是在github上創(chuàng)建一個(gè)project,名叫g(shù)o-proxy,然后增加一個(gè)Dockerfile文件:

FROM goproxy/goproxy:latest
CMD ["/goproxy", "-listen=0.0.0.0:8080", "-cacheDir=/opt/data", "-proxy", "https://goproxy.io", "-exclude", "*.nsini.com"]

創(chuàng)建一個(gè)用

掛載持久化存儲(chǔ)

測(cè)試

首先將GOPROXY環(huán)境變量設(shè)置為剛剛生成的地址:goproxy.app.nsini.com,然后執(zhí)行構(gòu)建:

$ export GOPROXY=https://goproxy.app.nsini.com
$ GO111MODULE=on go build

尾巴

?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容