gpt4 book ai didi

带有 Iris-Go 框架的 Golang ReverseProxy

转载 作者:数据小太阳 更新时间:2023-10-29 03:26:12 27 4
gpt4 key购买 nike

任何能够将 Golang 的 ReverseProxy 功能与 Iris-Go 网络框架连接起来的人。我无法让它工作。我可以用普通的 net/http 连接它。

func MultiHostReverseProxy(targets map[string]utils.Service) *httputil.ReverseProxy {
r := regexp.MustCompile(`\/proxy/(?P<Service>[a-zA-Z_-]*)(?P<Path>\/.*)`)
director := func(req *http.Request) {
if strings.HasPrefix(req.URL.Path, "/proxy/") {
temp := r.FindStringSubmatch(req.URL.Path);
if (len(temp) > 1) {
system := temp[1]
if val, ok := targets[system]; ok {
s := val.Host + ":" + val.Port
req.URL.Scheme = val.Scheme
req.URL.Host = s
req.URL.Path = temp[2]

if enc, ok := GetAxleHeader(req.Header); ok {
dec := utils.Decrypt(KEY, enc)
req.Header.Set(val.AuthHeader, dec)
req.Header.Set(AXLE_HEADER, "")
} else {
token, nq := utils.FindAxleToken(req.URL.RawQuery);
fmt.Printf("%s -> token : %s newQuery: %s\n", req.URL.RawQuery, token, nq);
if token != "" {
req.URL.RawQuery = nq
dec := utils.Decrypt(KEY, token)
req.Header.Set(val.AuthHeader, dec)
req.Header.Set(AXLE_HEADER, "")
}
}
}
}
}
}
return &httputil.ReverseProxy{Director: director}
}

我如何将这个 ReverseProxy 对象与 iris 框架一起使用;

最佳答案

在 Iris 上搜索和发布后,我在 iris 资源中得到了这个例子。可能对其他人有帮助

https://github.com/kataras/iris/blob/master/http.go#L1412

关于带有 Iris-Go 框架的 Golang ReverseProxy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41143044/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com