【发布时间】:2022-01-09 22:12:04
【问题描述】:
我有一个通用的网络服务器,我想在不同的域/服务器上使用它。 为了设置每个服务器,我只需读取一个包含所有必要信息的 JSON 配置文件。例如,一种是重定向所有到达端口 80 的流量并将其转发到 TLS 服务。因为我不想使配置对象成为全局对象。如何将 inputFromConfigFile 中的内容传递给 redirectTLS 函数?
这是一个例子:
func main(){
var inputFromConfigFile = "https://www.example.com:443"
go func() {
if err := http.ListenAndServe(":80", http.HandlerFunc(redirectTLS)); err != nil {
log.Fatalf("ListenAndServe error: %v", err)
}
}()
}
//Pass the above string to this function:
func redirectTLS(w http.ResponseWriter, r *http.Request) {
http.Redirect(w, r, "https://www.example.com:443"+r.RequestURI,http.StatusMovedPermanently)
}
【问题讨论】:
-
如果是 JSON 配置文件,你应该解析一次并将对象/映射传递给处理程序,而不是传递字符串,这样每个处理程序都必须重复解析它
-
这是我真正想做的。为了简单起见,我只是在示例中使用了一个字符串……