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