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

I want to host multiple domains on the same machine, with multiple servers running on the same machine and different ports. I am trying to write a multiplexer which will redirect requests for domain "A" to the server running locally on "portA", and requests for domain "B" to the server running on "portB". How can I route those requests, while making this redirect transparent to the user and search-engine bots?

Currently, I use something like this:

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))
}

(just posting @james-odoherty's comment as an answer since he hasn't)

You want to use the httputil.ReverseProxy type from the net/http/httputil package.