如何使用Go将不同域的请求多路复用到不同的服务器?

时间:2014-01-09 12:11:05

标签: go

我想在同一台计算机上托管多个域,多台服务器在同一台计算机和不同的端口上运行。我正在尝试编写一个多路复用器,它将域“A”的请求重定向到“portA”本地运行的服务器,并向“portB”上运行的服务器请求域“B”。我如何路由这些请求,同时使这个重定向对用户和搜索引擎机器人透明?

目前,我使用这样的东西:

package main

import (
    "net/http"
    "log"
)

func main() {
    mux := http.NewServeMux()
    mux.Handle("mydomainA.com", http.RedirectHandler("http://localhost:1234", 302))
    mux.Handle("mydomainB.com", http.RedirectHandler("http://localhost:4567", 302))
    log.Fatal(http.ListenAndServe(":8080", mux))
}

1 个答案:

答案 0 :(得分:1)

(只是将@ james-odoherty的评论作为答案发布,因为他没有)

您想使用httputil.ReverseProxy包中的net/http/httputil类型。