JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

Go教程31: Go实现反向代理 go http反向代理

wys521 2024-10-19 09:24:08 精选教程 25 ℃ 0 评论

1.什么是反向代理

反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

2.常用用场景

网关

Web服务器

3.常用软件

nginx

4.Go实现反向代理代理

import (
	"github.com/dgrijalva/jwt-go"
	"github.com/gin-gonic/gin"
	"net/http"
	"net/http/httputil"
	"strconv"
	"strings"
)
func main() {
 app := gin.Default()
 app.GET("/ping", WithHeader)
 app.Run(":8080")
}
func WithHeader(ctx *gin.Context) {
	cp := ctx.Copy()
	cp.Request.URL.Path = "user/ping"
	var simpleHostProxy = httputil.ReverseProxy{
		Director: func(req *http.Request) {
			req.URL.Scheme = "http"
			req.URL.Host = "127.0.0.1"
			req.Host = "127.0.0.1"
		},
	}
	simpleHostProxy.ServeHTTP(ctx.Writer, cp.Request)
}

如果你觉得好,可以使用我发布到iOS APP Store的产品

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表