http代理在beego框架的应用小例

定义一个handle结构体

typehandlestruct{

}

定义代理函数

func(this*handle)ServeHTTP(whttp.ResponseWriter,r*http.Request){

             address:=beego.AppConfig.String("addr")

            defaultPrefix:="http://"

                    remote,err:=url.Parse(defaultPrefix+address)

                   if err!=nil{

                                   panic(err)

                 }

                 proxy:=httputil.NewSingleHostReverseProxy(remote)

                 varpTransporthttp.RoundTripper=&http.Transport{

                                         Proxy:http.ProxyFromEnvironment,

                                        Dial:(&net.Dialer{

                                                    Timeout:30*time.Second,

                                                     KeepAlive:30*time.Second,

                                          }).Dial,

                                          MaxIdleConns:1000,

                                           IdleConnTimeout:10*time.Second,

                                           TLSHandshakeTimeout:10*time.Second,

                                           ExpectContinueTimeout:1*time.Second,

                                          DisableKeepAlives:false,

                      }

               proxy.Transport=pTransport

               proxy.ServeHTTP(w,r)

}

路由设置

vars=&handle{}

beego.Handler("/*",s)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,860评论 18 139
  • NAME dnsmasq - A lightweight DHCP and caching DNS server....
    ximitc阅读 2,906评论 0 0
  • 一次不经意的点击,看到董卿的一段话“世间一切,都是遇见。就像,冷遇见暖,就有了雨;春遇见冬,有了岁月;天遇见...
    N倪宁阅读 253评论 0 2
  • ——魏君学习非暴力沟通心得 很多人感到绝望,是因为看不到路的尽头,并始终用终点来衡量自己所站立的位置。我很欣赏昂山...
    魏君NVC阅读 882评论 0 4
  • My code: 真的没想到这道题目我可以自己做出来。。。还是很兴奋的。 iteration DPdp[i][j]...
    Richardo92阅读 273评论 0 0