proxy

package
v0.0.0-...-a3a5c94 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 21, 2021 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ContextKey

type ContextKey string

ContextKey

type Endpoint

type Endpoint string

Endpoint

func (Endpoint) GetAddr

func (e Endpoint) GetAddr() string

GetAddr

func (Endpoint) GetHTTPAddr

func (e Endpoint) GetHTTPAddr() string

GetHTTPAddr get http url

func (Endpoint) GetName

func (e Endpoint) GetName() string

GetName get endpoint name

func (Endpoint) String

func (e Endpoint) String() string

type EndpointList

type EndpointList []Endpoint

EndpointList

func CreateEndpoints

func CreateEndpoints(endpoints []string) EndpointList

CreateEndpoints

func (*EndpointList) Add

func (e *EndpointList) Add(endpoints ...string)

Add

func (*EndpointList) Delete

func (e *EndpointList) Delete(endpoints ...string)

Delete

func (*EndpointList) HaveEndpoint

func (e *EndpointList) HaveEndpoint(endpoint string) bool

HaveEndpoint whether or not there is an endpoint

func (*EndpointList) Len

func (e *EndpointList) Len() int

Len

func (*EndpointList) Selec

func (e *EndpointList) Selec(i int) Endpoint

Select

type HTTPProxy

type HTTPProxy struct {
	// contains filtered or unexported fields
}

HTTPProxy

func (*HTTPProxy) Do

func (h *HTTPProxy) Do(r *http.Request) (*http.Response, error)

Do proxy

func (*HTTPProxy) Proxy

func (h *HTTPProxy) Proxy(w http.ResponseWriter, r *http.Request)

Proxy http proxy

func (*HTTPProxy) UpdateEndpoints

func (h *HTTPProxy) UpdateEndpoints(endpoints ...string)

UpdateEndpoints

type LoadBalance

type LoadBalance interface {
	Select(r *http.Request, endpoints EndpointList) Endpoint
}

LoadBalance

func NewRoundRobin

func NewRoundRobin() LoadBalance

NewRoundRobin create a RoundRobin

type Proxy

type Proxy interface {
	Proxy(w http.ResponseWriter, r *http.Request)
	Do(r *http.Request) (*http.Response, error)
	UpdateEndpoints(endpoints ...string) // format: ["name=>ip:port", ...]
}

Proxy proxy

func CreateProxy

func CreateProxy(name string, mode string, endpoints []string) Proxy

CreateProxy create proxy

type RoundRobin

type RoundRobin struct {
	// contains filtered or unexported fields
}

RoundRobin loadBalance impl

func (RoundRobin) Select

func (rr RoundRobin) Select(r *http.Request, endpoints EndpointList) Endpoint

Select select a server from servers using RoundRobin

type SelectBalance

type SelectBalance struct {
	// contains filtered or unexported fields
}

SelectBalance selective load balancing

func NewSelectBalance

func NewSelectBalance() *SelectBalance

NewSelectBalance create selective load balancing

func (*SelectBalance) Select

func (s *SelectBalance) Select(r *http.Request, endpoints EndpointList) Endpoint

Select load

type WebSocketProxy

type WebSocketProxy struct {
	// contains filtered or unexported fields
}

WebSocketProxy

func (*WebSocketProxy) Do

func (h *WebSocketProxy) Do(r *http.Request) (*http.Response, error)

Do proxy

func (*WebSocketProxy) Proxy

func (h *WebSocketProxy) Proxy(w http.ResponseWriter, req *http.Request)

Proxy websocket proxy

func (*WebSocketProxy) UpdateEndpoints

func (h *WebSocketProxy) UpdateEndpoints(endpoints ...string)

UpdateEndpoints

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL