#
# 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 information 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
