#
# This is an example of how to configure HAProxy to be used with WURFL Device Detection module.
#
# HAProxy needs to be compiled with support for this. See README section 1.3
#

global

	# The WURFL data file
	wurfl-data-file		/usr/share/wurfl/wurfl.zip

	# WURFL patches definition (as much as needed, patches will be applied in the same order as specified in this conf file)
	#wurfl-patch-file	/path/to/patch1.xml;

	#wurfl-cache-size	100000
	## no cache
	#wurfl-cache-size	0

	wurfl-information-list-separator |

	# list of WURFL capabilities, virtual capabilities, property names planned to be used in injected headers
	wurfl-information-list wurfl_id model_name

defaults
	mode http
	timeout connect		30s
	timeout client		30s
	timeout server		30s

frontend TheFrontend
	bind			192.168.1.22:80
	default_backend		TheBackend

	# inject a header called X-Wurfl-All with all the WURFL informations listed in wurfl-information-list
	http-request set-header X-Wurfl-All %[wurfl-get-all()]

	# inject a header called X-WURFL-PROPERTIES with the "wurfl_id" information (should be listed in wurfl-information-list)
	#http-request set-header X-WURFL-PROPERTIES %[wurfl-get(wurfl_id)]

backend TheBackend
	server			TheWebServer 192.168.0.40:80
