golang如何创建反向代理
Posted
技术标签:
【中文标题】golang如何创建反向代理【英文标题】:how to create a reverse proxy in golang 【发布时间】:2021-12-26 18:24:49 【问题描述】:我想使用 stl 库中的 net 包在 golang 中制作反向代理。使用 httputil 创建反向代理。但是当我向代理服务器发出请求时,它会返回 404 错误。
这是代理服务器代码
package main
import (
"log"
"net/http"
"net/http/httputil"
"net/url"
)
func main()
demoUrl , err := url.Parse("http://localhost:1000/run/")
if err!=nil
log.Fatal(err)
return
proxy := httputil.NewSingleHostReverseProxy(demoUrl)
http.HandleFunc("/", func(rw http.ResponseWriter, r *http.Request)
proxy.ServeHTTP(rw, r)
)
http.ListenAndServe(":2000", nil)
这里是源服务器代码:
package main
import (
"net/http"
)
func main()
http.HandleFunc("/run", func(w http.ResponseWriter, r *http.Request)
w.Write([]byte("I am running"))
)
http.ListenAndServe(":1000", nil)
请告诉我这里缺少什么以及如何修复错误!请
【问题讨论】:
【参考方案1】:路由器不匹配。 这将按预期工作。
...
func main()
http.HandleFunc("/run/", func(w http.ResponseWriter, r *http.Request)
w.Write([]byte("I am running"))
)
http.ListenAndServe(":1000", nil)
...
【讨论】:
谢谢。这是我身边的一个愚蠢的错字。以上是关于golang如何创建反向代理的主要内容,如果未能解决你的问题,请参考以下文章