https://github.com/2manymws/rp
rp is a reverse proxy package for multiple domains and multiple upstreams.
https://github.com/2manymws/rp
go reverse-proxy
Last synced: 3 months ago
JSON representation
rp is a reverse proxy package for multiple domains and multiple upstreams.
- Host: GitHub
- URL: https://github.com/2manymws/rp
- Owner: 2manymws
- License: mit
- Created: 2023-08-25T14:45:58.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-09-09T09:45:33.000Z (almost 2 years ago)
- Last Synced: 2026-03-05T16:50:44.554Z (4 months ago)
- Topics: go, reverse-proxy
- Language: Go
- Homepage:
- Size: 99.6 KB
- Stars: 13
- Watchers: 1
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# rp [](https://pkg.go.dev/github.com/2manymws/rp) [](https://github.com/2manymws/rp/actions/workflows/ci.yml)   
`rp` is a **r**everse **p**roxy package for multiple domains and multiple upstreams.
## Usage
Prepare an instance that implements [`rp.Relayer`](https://pkg.go.dev/github.com/2manymws/rp#Relayer) interface.
And then, create a new `http.Server` using [`rp.NewServer`](https://pkg.go.dev/github.com/2manymws/rp#NewServer) or [`rp.NewTLSServer`](https://pkg.go.dev/github.com/2manymws/rp#NewTLSServer) with the instance.
Use [`rp.NewServer`](https://pkg.go.dev/github.com/2manymws/rp#NewServer) ( [`rp.ListenAndServe`](https://pkg.go.dev/github.com/2manymws/rp#ListenAndServe) ) if handling per-domain (or per-request, as the case may be) upstreams.
```go
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`](https://pkg.go.dev/github.com/2manymws/rp#NewTLSServer) ( [`rp.ListenAndServeTLS`](https://pkg.go.dev/github.com/2manymws/rp#ListenAndServeTLS) )if handling per-domain TLS termination as well as per-domain HTTP request routing.
```go
package main
import (
"log"
"net/http"
"github.com/2manymws/rp"
)
func main() {
var r rp.Relayer = newMyRelayer()
log.Fatal(rp.ListenAndServeTLS(":443", r))
}
```