你可以使用gin框架的ReverseProxy来实现这个功能。下面是一个简单的示例代码:
package main
import (
"log"
"net/http"
"net/http/httputil"
"net/url"
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
r.Any("/*path", func(c *gin.Context) {
targetURL, _ := url.Parse("http://1.1.1.1" + c.Request.URL.Path)
proxy := httputil.NewSingleHostReverseProxy(targetURL)
c.Request.Host = "hahah.com.cn" // 设置请求头中的Host字段
proxy.ServeHTTP(c.Writer, c.Request)
})
err := r.Run(":8080")
if err != nil {
log.Fatal(err)
}
}
在这个示例中,所有的请求都会被转发到http://1.1.1.1
上,并且会设置请求头中的Host字段为hahah.com.cn
。你可以根据自己的需要进行修改和扩展。注意,此示例并没有处理错误情况,实际生产环境中应该添加错误处理逻辑。
内容由零声教学AI助手提供,问题来源于学员提问