我正在为我的后端构建一个反向代理,但我不明白为什么即使我用文档中看到的任何方法更改主机头,它也不会更改. 后端需要真正的主持人才能提供正确的内容.
以下是代码:
proxy := &httputil.ReverseProxy{
Director: func(req *http.Request) {
targetURL := url.URL{
Scheme: "http",
Host: "backend.com",
Path: req.URL.Path,
}
req.URL.Scheme = targetURL.Scheme
req.URL.Host = targetURL.Host
req.URL.Path = targetURL.Path
req.Header.Set("Host", targetURL.Host)
},
Transport: transport,
}
// Listen on a local port and serve the reverse proxy without buffer method
server := &http.Server{
Addr: "localhost:8080",
Handler: proxy,
}
fmt.Println("Listening on :8080...")
err = server.ListenAndServe()
if err != nil {
fmt.Println(err)
}