簡體   English   中英

如何在 golang 中創建反向代理

[英]how to create a reverse proxy in 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)
}
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM