Golang gin反向代理

【摘自反向代理】

        大家都有过这样的经历,拨打10086 客服电话,一个地区的 10086 客服有几个或者几十个,你永远都不需要关心在电话那头的是哪一个,叫什么,男的,还是女的,漂亮的还是帅气的,你都不关心,你关心的是你的问题能不能得到专业的解答,你只需要拨通了10086 的总机号码,电话那头总会有人会回答你,只是有时慢有时快而已。那么这里的 10086 总机号码就是我们说的反向代理。客户不知道真正提供服务的人是谁。

        反向代理隐藏了真实的服务端,当我们访问 www.baidu.com 的时候,就像拨打 10086 一样,背后可能有成千上万台服务器为我们服务,但具体是哪一台,你不知道,也不需要知道,你只需要知道反向代理服务器是谁就好了,www.baidu.com 就是我们的反向代理服务器,反向代理服务器会帮我们把请求转发到提供真实计算的服务器那里去。Nginx 就是性能非常好的反向代理服务器,它可以用来做负载均衡。 

supervisionAPI.POST("/devlicence", func(c *gin.Context) {
target := "http://127.0.0.1:9999"    //转向的host
remote, err := url.Parse(target)
if err != nil {
	checkErr("parse", err)
}
proxy := httputil.NewSingleHostReverseProxy(remote)
c.Request.URL.Path = "v1/supervision/test"    //请求API
proxy.ServeHTTP(c.Writer, c.Request)
})

 

 

你可能感兴趣的:(gin,Golang,Golang)