variantproxy

package
v0.0.0-...-636e20b Latest Latest
Warning

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

Go to latest
Published: May 4, 2018 License: LGPL-2.1 Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const (
	NodeHeaderKey = "Server-Node"
)

Variables

View Source
var CloseIdleProxyTransportConnectionsAfter = time.Second * 60
View Source
var Debug = false

Debug enable debugging for this package

Functions

This section is empty.

Types

type CuriousResponseWriter

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

func NewCuriousResponseWriter

func NewCuriousResponseWriter(rw http.ResponseWriter) *CuriousResponseWriter

func (*CuriousResponseWriter) Header

func (crw *CuriousResponseWriter) Header() http.Header

func (*CuriousResponseWriter) Write

func (crw *CuriousResponseWriter) Write(bytes []byte) (int, error)

func (*CuriousResponseWriter) WriteHeader

func (crw *CuriousResponseWriter) WriteHeader(h int)

type Node

type Node struct {
	Server            string
	URL               *url.URL
	SessionCookieName string
	ID                string

	Hits         int64
	ReverseProxy *httputil.ReverseProxy
	// contains filtered or unexported fields
}

Node of a variant

func NewNode

func NewNode(nodeConfig *config.Node) *Node

func (*Node) Load

func (n *Node) Load() float64

Load calculate current load

func (*Node) ServeHTTP

func (n *Node) ServeHTTP(w http.ResponseWriter, incomingRequest *http.Request)

type Proxy

type Proxy struct {
	Nodes []*Node
}

Proxy a proxy for a variant

func NewProxy

func NewProxy(c []*config.Node) *Proxy

NewProxy constructor

func (*Proxy) ResolveNode

func (p *Proxy) ResolveNode(incomingRequest *http.Request) (n *Node, cookieName string, sessionID string)

func (*Proxy) Serve

func (p *Proxy) Serve(w http.ResponseWriter, incomingRequest *http.Request) (sessionID string, cookieName string, err error)

Serve serve a http request

type SnifferResponseWriter

type SnifferResponseWriter struct {
	SessionId string
	// contains filtered or unexported fields
}

func (*SnifferResponseWriter) Header

func (srw *SnifferResponseWriter) Header() http.Header

func (*SnifferResponseWriter) Write

func (srw *SnifferResponseWriter) Write(bytes []byte) (int, error)

func (*SnifferResponseWriter) WriteHeader

func (srw *SnifferResponseWriter) WriteHeader(code int)

Jump to

Keyboard shortcuts

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