loadbalance

package
v0.0.0-...-9f15d01 Latest Latest
Warning

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

Go to latest
Published: Jul 11, 2016 License: Apache-2.0 Imports: 4 Imported by: 0

README

loadbalance

loadbalance acts as a round-robin DNS loadbalancer by randomizing A and AAAA records in the message. See Wikipedia about the pros and cons on this setup.

It will take care to sort any CNAMEs before any address records.

Syntax

loadbalance [policy]
  • policy is how to balance, the default is "round_robin"

Examples

loadbalance round_robin

Documentation

Overview

Package loadbalance is middleware for rewriting responses to do "load balancing"

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type RoundRobin

type RoundRobin struct {
	Next middleware.Handler
}

RoundRobin is middleware to rewrite responses for "load balancing".

func (RoundRobin) ServeDNS

func (rr RoundRobin) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (int, error)

ServeDNS implements the middleware.Handler interface.

type RoundRobinResponseWriter

type RoundRobinResponseWriter struct {
	dns.ResponseWriter
}

func NewRoundRobinResponseWriter

func NewRoundRobinResponseWriter(w dns.ResponseWriter) *RoundRobinResponseWriter

func (*RoundRobinResponseWriter) Hijack

func (r *RoundRobinResponseWriter) Hijack()

func (*RoundRobinResponseWriter) Write

func (r *RoundRobinResponseWriter) Write(buf []byte) (int, error)

Should we pack and unpack here to fiddle with the packet... Not likely.

func (*RoundRobinResponseWriter) WriteMsg

func (r *RoundRobinResponseWriter) WriteMsg(res *dns.Msg) error

Jump to

Keyboard shortcuts

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