You are on page 1of 3

Pound installation on redhat enterprise Linux 4 x86_64

Syed Atif Ali

Introduction :
The Pound program is a reverse proxy, load balancer and HTTPS front-end
for Web server(s). Pound was developed to enable distributing the load among
several Web-servers and to allow for a convenient SSL wrapper for those Web
servers that do not offer it natively. Pound is distributed under the GPL - no
warranty, it's free to use, copy and give away.

I will install pound to serve many asp's on single IP . and use pound and reverse
proxy and load balancer.

Software :
Pound-2.3.2
PCRE-devel ( Highly recommended)
Google perftools 0.8 ( Highly recommended )

I am performing this installation on an AMD Opteron dual core machine with
3 GB of memory

Installation :

I would be installing pound against PCRE and tcmalloc thread allocation library
provided by google. Pound README suggests this about these requirements

" The PCRE package is strongly recommended .... If the PCRE package is available
Pound will link against it. This will provide a significant performance boost. "

PCRE-devel installation :

# yum install pcre-devel

Google perftools installation :

# mkdir ~/software
# cd ~/software
# wget http://google-perftools.googlecode.com/files/google-perftools-0.8.tar.gz
# tar xzf .tar.gz
# cd google-perftools-0.8
# ./configure --prefix=/home/atif/googlelib
# make

it gave an error
src/base/linux_syscall_support.h:339: error: invalid conversion from `long int' to
`void*'
make: *** [libtcmalloc_minimal_la-malloc_hook.lo] Error 1

open src/base/linux_syscall_support.h and edit line 338

Change this To this
static inline _syscall6(void*, static inline _syscall6(long int,
sys_mmap, void*, s, sys_mmap, void*, s,
size_t, l, size_t, l,
int, p, int, p,
int, f, int, int, f, int,
d, d,

after that

# make clean
# make
# mkdir /home/atif/googlelib
# make install

I also added in LD_LIBRARY_PATH the location /home/atif/googlelib/lib , in fact i
even added it in /etc/ld.so.conf and ran

# ldconfig

( assuming that pound configure will find these , but it didn't happen u will see
later )

Pound installation :

# cd ~/software
# wget http://www.apsis.ch/pound/Pound-2.2.7.tgz
# tar xzf Pound-2.2.7.tgz
# cd Pound-2.2.7
# ./configure --prefix=/home/atif/pound

Although PCRE-devel was installed with rpm and googlelib was in ld_library_path
and ld.so.conf , configure script of pound could not find both and was not linking
against these libraries.

So i had to export LDFLAGS and CPPFLAGS before running configure script which
than found both libraries and linked against them .
# export LDFLAGS="-L/home/atif/googlelib/lib"
# export CPPFLAGS="-I/usr/include/pcre"
# ./configure --prefix=/home/atif/pound
# make
# make install

Thats it! you can now start pound with your configuration files. You can find
sample configuration files in pound source . people have been using pound to load
balance a lot of other application not just web servers.