mirror of
https://github.com/caddyserver/caddy.git
synced 2025-01-23 17:16:40 +01:00
proxy: Correct policy documentation (#1678)
* Correct proxy policy documentation Signed-off-by: Jonas Östanbäck <jonas.ostanback@gmail.com> * Change first's select() wording Signed-off-by: Jonas Östanbäck <jonas.ostanback@gmail.com>
This commit is contained in:
parent
05ea5c32be
commit
8d3f336971
1 changed files with 7 additions and 7 deletions
|
@ -56,7 +56,7 @@ func (r *Random) Select(pool HostPool, request *http.Request) *UpstreamHost {
|
||||||
type LeastConn struct{}
|
type LeastConn struct{}
|
||||||
|
|
||||||
// Select selects the up host with the least number of connections in the
|
// Select selects the up host with the least number of connections in the
|
||||||
// pool. If more than one host has the same least number of connections,
|
// pool. If more than one host has the same least number of connections,
|
||||||
// one of the hosts is chosen at random.
|
// one of the hosts is chosen at random.
|
||||||
func (r *LeastConn) Select(pool HostPool, request *http.Request) *UpstreamHost {
|
func (r *LeastConn) Select(pool HostPool, request *http.Request) *UpstreamHost {
|
||||||
var bestHost *UpstreamHost
|
var bestHost *UpstreamHost
|
||||||
|
@ -84,13 +84,13 @@ func (r *LeastConn) Select(pool HostPool, request *http.Request) *UpstreamHost {
|
||||||
return bestHost
|
return bestHost
|
||||||
}
|
}
|
||||||
|
|
||||||
// RoundRobin is a policy that selects hosts based on round robin ordering.
|
// RoundRobin is a policy that selects hosts based on round-robin ordering.
|
||||||
type RoundRobin struct {
|
type RoundRobin struct {
|
||||||
robin uint32
|
robin uint32
|
||||||
mutex sync.Mutex
|
mutex sync.Mutex
|
||||||
}
|
}
|
||||||
|
|
||||||
// Select selects an up host from the pool using a round robin ordering scheme.
|
// Select selects an up host from the pool using a round-robin ordering scheme.
|
||||||
func (r *RoundRobin) Select(pool HostPool, request *http.Request) *UpstreamHost {
|
func (r *RoundRobin) Select(pool HostPool, request *http.Request) *UpstreamHost {
|
||||||
poolLen := uint32(len(pool))
|
poolLen := uint32(len(pool))
|
||||||
r.mutex.Lock()
|
r.mutex.Lock()
|
||||||
|
@ -106,7 +106,7 @@ func (r *RoundRobin) Select(pool HostPool, request *http.Request) *UpstreamHost
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// IPHash is a policy that selects hosts based on hashing the request ip
|
// IPHash is a policy that selects hosts based on hashing the request IP
|
||||||
type IPHash struct{}
|
type IPHash struct{}
|
||||||
|
|
||||||
func hash(s string) uint32 {
|
func hash(s string) uint32 {
|
||||||
|
@ -115,7 +115,7 @@ func hash(s string) uint32 {
|
||||||
return h.Sum32()
|
return h.Sum32()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Select selects an up host from the pool using a round robin ordering scheme.
|
// Select selects an up host from the pool based on hashing the request IP
|
||||||
func (r *IPHash) Select(pool HostPool, request *http.Request) *UpstreamHost {
|
func (r *IPHash) Select(pool HostPool, request *http.Request) *UpstreamHost {
|
||||||
poolLen := uint32(len(pool))
|
poolLen := uint32(len(pool))
|
||||||
clientIP, _, err := net.SplitHostPort(request.RemoteAddr)
|
clientIP, _, err := net.SplitHostPort(request.RemoteAddr)
|
||||||
|
@ -133,10 +133,10 @@ func (r *IPHash) Select(pool HostPool, request *http.Request) *UpstreamHost {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// First is a policy that selects the fist available host
|
// First is a policy that selects the first available host
|
||||||
type First struct{}
|
type First struct{}
|
||||||
|
|
||||||
// Select selects the first host from the pool, that is available
|
// Select selects the first available host from the pool
|
||||||
func (r *First) Select(pool HostPool, request *http.Request) *UpstreamHost {
|
func (r *First) Select(pool HostPool, request *http.Request) *UpstreamHost {
|
||||||
for _, host := range pool {
|
for _, host := range pool {
|
||||||
if host.Available() {
|
if host.Available() {
|
||||||
|
|
Loading…
Reference in a new issue