2017-08-20 63 views
2

這是我的代碼:獲取網/ HTTP:搬運工集裝箱主機上運行的應用程序golang當TLS握手超時

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) 
    } 
} 

我試圖運行與碼頭工人集裝箱化的服務和泊塢窗容器主機上部署它( sloppy.io),此服務調用另一個服務(帳戶服務)從該服務獲取帳戶和密碼,並在同一主機上通過用戶輸入驗證它們。問題是當我登錄到我的頁面後,502 Bad Gateway show up .Track記錄我看到錯誤:TLS握手超時。

我該如何解決這個問題?

+0

你是否能夠在容器內蜷縮'account.sloppy.zone'?檢查它是否可以訪問您的網站內的容器或不? –

回答

0

都是在sloppy.io上運行的服務嗎?

1

由於您的golang應用程序取決於帳戶服務,因此您應該在設置中定義此依賴關係並使用docker的網絡功能來連接這兩個服務。這樣做也將使您能夠將任意數量的實例作爲碼頭羣運行,或者在另一個可伸縮的羣集基礎架構(如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將其轉換爲sloppy.yml(github.com/sloppyio/sloppose)。

相關問題