Golang HTTP 反向代理实现详解
在 Go 语言中,可以使用 net/http/httputil 包中的 ReverseProxy 结构体来实现 HTTP 反向代理。
示例代码如下:
package main
import (
"log"
"net/http"
"net/http/httputil"
"net/url"
)
func main() {
// 创建反向代理对象
proxy := httputil.NewSingleHostReverseProxy(&url.URL{
Scheme: "http",
Host: "localhost:8080",
})
// 创建HTTP服务器
server := &http.Server{
Addr: ":9090",
Handler: proxy,
}
// 启动HTTP服务器
log.Println("Starting server on :9090")
if err := server.ListenAndServe(); err != nil {
log.Fatal(err)
}
}
在上述代码中,我们创建了一个反向代理对象 proxy,并将其作为 http.Server 的 Handler。proxy 将所有请求转发到 localhost:8080。
启动程序后,访问 http://localhost:9090 即可看到被代理的网站。
原文地址: https://www.cveoy.top/t/topic/kRlU 著作权归作者所有。请勿转载和采集!