登录
首页 >  Golang >  Go问答

在Golang中如何实现反向代理

来源:stackoverflow

时间:2024-02-26 19:00:30 102浏览 收藏

大家好,我们又见面了啊~本文《在Golang中如何实现反向代理》的内容中将会涉及到等等。如果你正在学习Golang相关知识,欢迎关注我,以后会给大家带来更多Golang相关文章,希望我们能一起进步!下面就开始本文的正式内容~

问题内容

我想使用 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)
}

请告诉我这里缺少什么以及如何修复该错误!请


正确答案


路由器不匹配。 这将按预期工作。

...
func main(){
    http.HandleFunc("/run/", func(w http.ResponseWriter, r *http.Request){
        w.Write([]byte("I am running"))
    })
    http.ListenAndServe(":1000", nil)
}
...

今天关于《在Golang中如何实现反向代理》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>