HAProxy on Solaris 11
Quick example of a simple HAProxy setup on Solaris 11.
Create a suitable home and download the binary:
# pwd /usr/local/haproxy # wget http://haproxy.1wt.eu/download/1.4/bin/haproxy-1.4.24-pcre-solaris-sparc.notstripped.gz # gzip -d haproxy-1.4.24-pcre-solaris-sparc.notstripped.gz # chmod +x haproxy-1.4.24-pcre-solaris-sparc.notstripped # file haproxy-1.4.24-pcre-solaris-sparc.notstripped haproxy-1.4.24-pcre-solaris-sparc.notstripped: ELF 32-bit MSB executable SPARC32PLUS Version 1, V8+ Required, dynamically linked, not stripped # ./haproxy-1.4.24-pcre-solaris-sparc.notstripped HA-Proxy version 1.4.24 2011/03/09 Copyright 2000-2010 Willy Tarreau <w@1wt.eu> Usage : ./haproxy-1.4.24-pcre-solaris-sparc.notstripped [-f ]* [ -vdVD ] [ -n ] [ -N ] [ -p ] [ -m ] -v displays version ; -vv shows known build options. -d enters debug mode ; -db only disables background mode. -V enters verbose mode (disables quiet mode) -D goes daemon -q quiet mode : don't display messages -c check mode : only check config files and exit -n sets the maximum total # of connections (2000) -m limits the usable amount of memory (in MB) -N sets the default, per-proxy maximum # of connections (2000) -p writes pids of all children to this file -dp disables poll() usage even when available -sf/-st [pid ]* finishes/terminates old pids. Must be last arguments.
Setup a small config file:
# cat haproxy.cfg global daemon maxconn 256 defaults mode http timeout connect 5000ms timeout client 50000ms timeout server 50000ms frontend http-in bind *:80 default_backend app1 backend app1 server s1 10.0.1.10:80 maxconn 32 server s2 10.0.1.11:80 maxconn 32 server s3 10.0.1.12:80 maxconn 32 listen admin bind *:8080 stats enable
Stop anything running on the ports you want to listen on:
# svcs -a | grep apache disabled Oct_10 svc:/network/http:apache22
Run the HAProxy binary and config:
# ./haproxy-1.4.24-pcre-solaris-sparc.notstripped -f ./haproxy.cfg # ps -ef | grep haproxy root 20765 1 0 08:31:46 ? 0:00 ./haproxy-1.4.24-pcre-solaris-sparc.notstripped -f ./haproxy.cfg
Test the stats page and the load balanced page you configured:
http://lbserver:8080/haproxy?stats
http://lbserver/myapp/