使用 Nginx/Django 创建虚拟主机就像编写适当的配置一样简单。
对于 Go 我发现了这个https://codereview.appspot.com/4070043 https://codereview.appspot.com/4070043我知道我必须使用ServeMux
但如何实施呢?
我的意思是我必须为所有项目拥有 1 个二进制文件,或者我必须创建一些“路由器”服务器来根据主机名路由请求?如何做到“走”路?
您将使用 ServeMux 是正确的。这ServeMux 的 godoc http://golang.org/pkg/net/http/#ServeMux有一些有关如何使用它的详细信息。
在标准http包中,有一个DefaultServeMux,可以使用顶级Handle函数来操作它。例如,一个简单的虚拟主机应用程序可能如下所示:
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, world!")
})
http.HandleFunc("qa.example.com/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, improved world!")
})
http.ListenAndServe(":8080", nil)
}
在此示例中,对 qa.example.com 的所有请求都将命中第二个处理程序,对其他主机的所有请求将命中第一个处理程序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)