看httputil.ReverseProxy
我用它来执行请求,翻斗车,基本上没有你所描述的 - 监听特定端口并转发到了一些网址。
这是示例代码。里程可能会有所不同,因为我刚刚删除了与我在代理中进行的实际工作相关的部分,并留下了可进行路由的部分。 但它可能是一个起点。
func SetProxy(targetUrl string) (newUrl string, err error) {
var target *url.URL
target, err = url.Parse(targetUrl)
if err != nil {
return "", err
}
origHost := target.Host
origScheme := target.Scheme
d := func(req *http.Request) {
req.URL.Host = origHost
req.URL.Scheme = origScheme
}
p := &httputil.ReverseProxy{Director: d,}
http.HandleFunc("/", p)
target.Host = "localhost:8000"
target.Scheme = "http"
newUrl = target.String()
go func() {
err = http.ListenAndServe(":"+localPort, nil)
if err != nil {
panic(err)
}
}()
return newUrl, nil
}
一个建议是有它的index.php拉在远程页面数据并将其注入到实际的页面在newurl.com – adamprocter 2015-02-10 17:17:42
找到又名 - 卷曲PHP https://github.com/joshdick/miniproxy – adamprocter 2015-02-10 17:18:31