13397158231   jevian_ma@worldflying.cn

go语言开发反向代理服务器

2019-09-24 20:37:12

前一天小沃向大家介绍了下http代理服务器,但是由于这些代理服务器均是正向代理,需要客户端支持,如果客户端不支持,就无法工作,因此小沃今天教大家用go语言开发反向代理。

go语言是google最新推出的编程语言,拥有天生异步IO,高并发,执行性能好,生成文件是单个可执行文件等好处。其中最后一点经常被小沃用于开发一些工具软件。

go语言用于开发反向代理可以说就一句话。

代码如下:

package main

import (
    "net/http"
    "net/http/httputil"
    "net/url"
)

func ServeHTTP(res http.ResponseWriter, req *http.Request) {
    remote, err := url.Parse("https://mirrors.aliyun.com")
    if err != nil {
        panic(err)
    }
    proxy := httputil.NewSingleHostReverseProxy(remote)
    req.Host = "mirrors.aliyun.com"
    proxy.ServeHTTP(res, req)
}

func main() {
    http.HandleFunc("/", ServeHTTP)
    err := http.ListenAndServe(":32236", nil);
    if err != nil {
        panic(err)
    }
}

这里为什么要用mirrors.aliyun.com做案例,因为小沃就是用这一段代码解决的一个内网服务器无法连接外网,但是需要下载依赖的问题的,大家可以根据自己的需求修改为特定的域名,代理端口为固定的32236


文章作者:沃航科技

优秀产品推荐:可编程网络IO控制器

上一篇:linux下轻量级http代理服务器tinyproxy的使用

下一篇:go语言获取命令行参数

联系我们

  • 地址:武汉市东湖高新开发区光谷总部国际1栋2412室
  • QQ:932773931
  • 电话:027-59761089-806
  • 手机:13397158231
  • 邮箱:jevian_ma@worldflying.cn

关注公众号

扫码添加微信

沃航(武汉)科技有限公司版权所有

备案号:鄂ICP备16014230号-1

本网站由提供CDN加速/云存储服务