在 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.ServerHandlerproxy 将所有请求转发到 localhost:8080

启动程序后,访问 http://localhost:9090 即可看到被代理的网站。

Golang HTTP 反向代理实现详解

原文地址: https://www.cveoy.top/t/topic/kRlU 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录