最近服务器上的nginx代理的博客,总是出现"连接被重置",考虑自己做一个代理。但不知道https和阿里和微信收费部份是否有受影响。
package main
import (
"log"
"net/http"
"net/http/httputil"
"net/url"
)
type Proxy struct {
RequestHost string //主机请求
ServerHost string //真实服务端
}
var myProxy []Proxy = []Proxy{
Proxy{"127.0.0.1", "127.0.0.1:3000"},
Proxy{"aaa.scwy.net", "wyyyh.3322.org:8181"},
}
func helloHandler(w http.ResponseWriter, r *http.Request) {
//默认服务内容
trueServer := "127.0.0.1:3000"
//匹配代理服务
for _, n := range myProxy {
if n.RequestHost == r.Host {
trueServer = n.ServerHost
r.Header.Set("ProxyServer", "EaseGo") //这个没成功,继续研究
}
}
//向代理获取数据
url, err := url.Parse("http://" + trueServer)
if err != nil {
log.Println(err)
return
}
proxy := httputil.NewSingleHostReverseProxy(url)
proxy.ServeHTTP(w, r)
}
func main() {
http.HandleFunc("/", helloHandler)
log.Fatal(http.ListenAndServe(":80", nil))
}