rp is a reverse proxy package for multiple domains and multiple upstreams.
Prepare an instance that implements rp.Relayer interface.
And then, create a new http.Server using rp.NewServer or rp.NewTLSServer with the instance.
Use rp.NewServer ( rp.ListenAndServe ) if handling per-domain (or per-request, as the case may be) upstreams.
package main
import (
"log"
"net/http"
"github.com/2manymws/rp"
)
func main() {
var r rp.Relayer = newMyRelayer()
log.Fatal(rp.ListenAndServe(":80", r))
}Use rp.NewTLSServer ( rp.ListenAndServeTLS )if handling per-domain TLS termination as well as per-domain HTTP request routing.
package main
import (
"log"
"net/http"
"github.com/2manymws/rp"
)
func main() {
var r rp.Relayer = newMyRelayer()
log.Fatal(rp.ListenAndServeTLS(":443", r))
}