如何将Go使用nginx作为子域?

时间:2015-04-19 17:32:37

标签: nginx go

我有一个简单的go程序,它使用http.ListenAndServe来提供内容。我使用nginx在一台服务器上提供多个应用程序,我也想将它用于go程序。我已经尝试过查找有关它的信息,但我发现所有人都使用FastCGI或node.js来使其工作。只用纯Go和nginx就可以做到吗?我理解如何将nginx与子域一起使用,但不是Go程序。

1 个答案:

答案 0 :(得分:5)

您可以通过proxy_pass直接将Nginx连接到Go程序。 给出:

package main

import (
    "fmt"
    "net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hi there, I love %s!", r.URL.Path[1:])
}

func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8080", nil)
}

您只需要在您的nginx配置中添加proxy_pass:

location @go {
    proxy_pass            127.0.0.1:8080;
}