reverseproxy

package
v0.0.0-...-5d26837 Latest Latest
Warning

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

Go to latest
Published: Oct 8, 2018 License: BSD-3-Clause Imports: 19 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrAllBackendsDead      = errors.New(string(allBackendsDeadContent))
	ErrNoRegisteredBackends = errors.New("no backends registered for host")
)

Functions

This section is empty.

Types

type FastReverseProxy

type FastReverseProxy struct {
	ReverseProxyConfig
	// contains filtered or unexported fields
}

func (*FastReverseProxy) Initialize

func (rp *FastReverseProxy) Initialize(rpConfig ReverseProxyConfig) error

func (*FastReverseProxy) Listen

func (rp *FastReverseProxy) Listen(listener net.Listener, tlsConfig *tls.Config)

func (*FastReverseProxy) Stop

func (rp *FastReverseProxy) Stop()

type NativeReverseProxy

type NativeReverseProxy struct {
	http.Transport
	ReverseProxyConfig
	// contains filtered or unexported fields
}

func (*NativeReverseProxy) Initialize

func (rp *NativeReverseProxy) Initialize(rpConfig ReverseProxyConfig) error

func (*NativeReverseProxy) Listen

func (rp *NativeReverseProxy) Listen(listener net.Listener, tlsConfig *tls.Config)

func (*NativeReverseProxy) RoundTrip

func (rp *NativeReverseProxy) RoundTrip(req *http.Request) (*http.Response, error)

func (*NativeReverseProxy) ServeHTTP

func (rp *NativeReverseProxy) ServeHTTP(rw http.ResponseWriter, req *http.Request)

func (*NativeReverseProxy) Stop

func (rp *NativeReverseProxy) Stop()

type RequestData

type RequestData struct {
	BackendLen int
	Backend    string
	BackendIdx int
	BackendKey string
	Host       string
	StartTime  time.Time
	AllDead    bool
}

type ReverseProxy

type ReverseProxy interface {
	Initialize(rpConfig ReverseProxyConfig) error
	Listen(net.Listener, *tls.Config)
	Stop()
}

type ReverseProxyConfig

type ReverseProxyConfig struct {
	Router            Router
	FlushInterval     time.Duration
	DialTimeout       time.Duration
	RequestTimeout    time.Duration
	ReadTimeout       time.Duration
	ReadHeaderTimeout time.Duration
	WriteTimeout      time.Duration
	IdleTimeout       time.Duration
	RequestIDHeader   string
}

type Router

type Router interface {
	Healthcheck() error
	ChooseBackend(host string) (*RequestData, error)
	EndRequest(reqData *RequestData, isDead bool, fn func() *log.LogEntry) error
}

type SNIReverseProxy

type SNIReverseProxy struct {
	ReverseProxyConfig
}

SNIReverseProxy is public struct for SNI reverseproxy

func (*SNIReverseProxy) Initialize

func (rp *SNIReverseProxy) Initialize(rpConfig ReverseProxyConfig) error

Initialize is public interface used on main.go to initialize reverseproxy

func (*SNIReverseProxy) Listen

func (rp *SNIReverseProxy) Listen(listener net.Listener, tlsConfig *tls.Config)

Listen is public interface used in router/listener.go

func (*SNIReverseProxy) Stop

func (rp *SNIReverseProxy) Stop()

Stop is public interface used on main to stop reverseproxy after os.Interrupt or os.Kill signal

Jump to

Keyboard shortcuts

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