#
# This is a sample configuration
# haproxy >= 1.3.4 required.
#
# It listens on 192.168.1.10:80, and directs all requests for Host 'img' or
# URIs starting with /img or /css to a dedicated group of servers. URIs
# starting with /admin/stats are directed to a backend dedicated to statistics.
#

global
        maxconn         10000
        log             127.0.0.1 local0
        uid             200
        gid             200
        chroot          /var/empty
        daemon


# The public 'www' address in the DMZ
frontend public
	bind		192.168.1.10:80
        mode            http
	log		global
        option		httplog
        option          dontlognull
        option		httpclose
	monitor-uri	/monitoruri
        maxconn		8000
	clitimeout	30000

	# Host: will use a specific keyword soon
	reqisetbe	^Host:\ img		static

	# The URI will use a specific keyword soon
	reqisetbe	^[^\ ]*\ /(img|css)/	static
	reqisetbe	^[^\ ]*\ /admin/stats	stats

	default_backend	dynamic


# The static backend backend for 'Host: img', /img and /css.
backend static
	mode		http
	balance		roundrobin
        contimeout      5000
        srvtimeout      5000
	redispatch
	retries		2
	option		httpchk HEAD /favicon.ico
        server		statsrv1 192.168.1.8:80 check inter 1000
        server		statsrv2 192.168.1.9:80 check inter 1000


backend dynamic
	mode		http
	balance		roundrobin
	contimeout	30000
	srvtimeout	30000
	redispatch
	retries		2
	option		httpchk HEAD /login.php
	cookie		DYNSRV insert indirect nocache
	fullconn	4000 # the servers will be used at full load above this number of connections
        server		dynsrv1 192.168.1.1:80 minconn 50 maxconn 500 cookie s1 check inter 1000
        server		dynsrv2 192.168.1.2:80 minconn 50 maxconn 500 cookie s2 check inter 1000
        server		dynsrv3 192.168.1.3:80 minconn 50 maxconn 500 cookie s3 check inter 1000
        server		dynsrv4 192.168.1.4:80 minconn 50 maxconn 500 cookie s4 check inter 1000


backend stats
        log             global
        mode            http
        stats           uri /
        balance         roundrobin

