loadbalance

package
v0.0.0-...-7f72c11 Latest Latest
Warning

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

Go to latest
Published: Mar 29, 2017 License: Apache-2.0 Imports: 6 Imported by: 0

README

loadbalance

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

It will take care to sort any CNAMEs before any address records, because some stub resolver implementations (like glibc) are particular about that.

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"

Package loadbalance shuffles A and AAAA records.

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) Name

func (rr RoundRobin) Name() string

Name implements the Handler interface.

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
}

RoundRobinResponseWriter is a response writer that shuffles A and AAAA records.

func (*RoundRobinResponseWriter) Hijack

func (r *RoundRobinResponseWriter) Hijack()

Hijack implements the dns.ResponseWriter interface.

func (*RoundRobinResponseWriter) Write

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

Write implements the dns.ResponseWriter interface.

func (*RoundRobinResponseWriter) WriteMsg

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

WriteMsg implements the dns.ResponseWriter interface.

Jump to

Keyboard shortcuts

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