gpt4 book ai didi

ssl - 获取网络/http : TLS handshake timeout when run golang app on docker container host

转载 作者:IT王子 更新时间:2023-10-29 01:44:39 27 4
gpt4 key购买 nike

这是我的代码:

func Login(w http.ResponseWriter, r *http.Request) {
fmt.Println("Login prccessing")
email := r.FormValue("email")
password := r.FormValue("password")
fmt.Println(email + password)
var netTransport = &http.Transport{
Dial: (&net.Dialer{
Timeout: 50 * time.Second,
}).Dial,
TLSHandshakeTimeout: 50 * time.Second,
}
var netClient = &http.Client{
Timeout: time.Second * 50,
Transport: netTransport,
}
res, err := netClient.Get("https://account.sloppy.zone/accounts/" + email)
if err != nil {
fmt.Println(err.Error())
http.Redirect(w, r, "/", http.StatusSeeOther)
}

responeData, errs := ioutil.ReadAll(res.Body)
fmt.Println(string(responeData))
if errs != nil {
log.Fatal(errs)
}
var info LoginInfo
json.Unmarshal(responeData, &info)
if email == info.Id && password == info.Password {
http.Redirect(w, r, "/manager", http.StatusSeeOther)
} else {
http.Redirect(w, r, "/", http.StatusSeeOther)
}
}

我正在尝试运行使用 docker 容器化的服务并将其部署在 docker 容器主机 (sloppy.io) 上,此服务调用另一个服务(帐户服务)以从该服务获取帐户和密码并通过用户输入验证它们在同一台主机上。问题是当我登录到我的页面时,出现 502 Bad Gateway。跟踪日志我看到错误:TLS 握手超时。

我该如何解决这个问题?

最佳答案

由于您的 golang 应用程序依赖于帐户服务,因此您应该在您的设置中定义此依赖项并使用 docker 的网络功能连接这两个服务。这样做还将使您能够以 docker swarm 或在另一个可扩展的集群基础设施(如 sloppy.io)中运行任意数量的实例。

这还有一个好处,就是您无需向公众公开您的后端(帐户服务)。

您可以使用 docker-compose 或 sloppy.io 的命令行界面来构建和运行您的应用程序。草率的配置文件与 docker-compose.yml 文件非常相似。参见 http://kb.sloppy.io/features/connecting-containers

这里是一个示例配置为 sloppy.yml

version: "v1"
project: "myproject"
services:
frontend:
golang_service:
dependencies:
- "../backend/account_service"
domain: "//my_golang_service.sloppy.zone"
env:
- ACCOUNT_HOST: "account_service.backend.myproject"
image: "dockerhub_username/golang_service:1.0.0"
port: 80
backend:
account_service:
image: "dockerhub_username/account_service:1.0.0"

这只是基本配置。您可能想要添加卷和环境变量。如果您已有现有的 docker-compose.yml,则可以使用 sloppose ( github.com/sloppyio/sloppose) 将其转换为 sloppy.yml。

关于ssl - 获取网络/http : TLS handshake timeout when run golang app on docker container host,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45786562/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com