Pound Load Balancer

utahcokeServers

Nov 17, 2013 (3 years and 8 months ago)

98 views

Pound Load Balancer

Naranchuluun
. D

What Pound is


a reverse
-
proxy: it passes requests from client browsers to one
or more back
-
end servers.


a load balancer: it will distribute the requests from the client
browsers among several back
-
end servers, while keeping
session information.


an SSL wrapper:

Pound

will decrypt HTTPS requests from
client browsers and pass them as plain HTTP to the back
-
end
servers.


an HTTP/HTTPS sanitizer:

Pound

will verify requests for
correctness and accept only well
-
formed ones.


a fail over
-
server: should a back
-
end server fail,

Pound

will
take note of the fact and stop passing requests to it until it
recovers.


a request redirector: requests may be distributed among
servers according to the requested URL.


What Pound is Not


Pound

is not a Web server: by
itself,

Pound

serves no content
-

it contacts the
back
-
end server(s) for that purpose.


Pound

is not a Web accelerator: no caching is
done
-

every request is passed "as is" to a back
-
end server.


Status


Pound

was

successfully

used

in

production

with

a

variety

of

Web

servers
,

including

Apache,

IIS,

Zope
,

WebLogic
,

Jakarta/Tomcat,

iPlanet
,

etc
.

In

general

Pound

passes

requests

and

responses

back

and

forth

unchanged,

so

we

have

no

reason

to

think

that

any

web

server

would

be

incompatible
.


Client browsers that were tested


IE 5.0/5.5 (Windows) HTTP/HTTPS


Netscape 4.7 (Windows/Linux) HTTP/HTTPS


Mozilla (Windows/Linux) HTTP/HTTPS


Konqueror

(Linux) HTTP/HTTPS


Galleon (Linux) HTTP/HTTPS


Opera (Linux/Windows) HTTP/HTTPS


Lynx (Linux) HTTP


Installation


Probably the easiest way to install

Pound

is to
use a pre
-
compiled package if you can find one.
While
Apsis

offers no such packages, they are
available for quite a few systems (
SuSE

Linux,
Debian

and derivatives such as
Ubuntu
, as well
as some private packages:


RPMs for
RedHat

are available at http://www.invoca.ch/pub/packages/pound/


A nice FreeBSD live
-
CD distribution is available at
http://www.targeted.org/files/fbsd71_pound244.iso.gz, including a Pound binary.


Packages for CRUX Linux are available from
http://ports.sterneck.asia/shin/#pound.



Example on
Ubuntu

Server Edition : apt
-
get install pound

Configration

Http

ListenHTTP


Address 0.0.0.0 # all interfaces


Port 80


HeadRemove

"X
-
Forwarded
-
For"


Service



BackEnd




Address 10.0.0.1



Port 80



Priority 1



End


BackEnd




Address 10.0.0.2



Port 80



Priority 1



End


End

End


Https

ListenHTTPS


Address 0.0.0.0 # all interfaces

Port 443

AddHeader

"X
-
Forwarded
-
Proto: https“

HeadRemove

"X
-
Forwarded
-
Proto"

HeadRemove

"X
-
Forwarded
-
For"

Cert "/path/to/certificate.pem


Service



BackEnd




Address 10.0.0.1



Port 80



Priority 1



End


BackEnd




Address 10.0.0.2



Port 80



Priority 1



End


End

End


More Information


http://www.apsis.ch/pound


http://syslog.tv/2011/09/29/load
-
balancing
-
httphttps
-
with
-
pound
-
on
-
debian
-
6ubuntu/


http://blog.secaserver.com/2011/11/install
-
pound
-
web
-
load
-
balancer/

Question?