HAProxy Enterprise has a module that provides 51Degrees support and a module that allows updates of 51Degrees databases during runtime, similar to our lb-update module for maps/ACLs.
Install the 51Degrees module
Get the 51Degrees database in Trie format.
If you are using the free lite database, you must register here to download the database in Trie format (still free), because the pattern format on Github does not work.
If you are already an 51Degrees customer, you can log in at the 51Degrees website and download the enterprise database in Trie format (if you choose to subscribe, please say that HAProxy Technologies referred you.)
Install the 51Degrees module:
apt-get install hapee-1.7r2-lb-51d(or
yum installdepending on your platform of choice).
In the global section of your configuration, add the following lines:
module-path /opt/hapee-1.7r2/modules/ module-load hapee-lb-51d.so 51degrees-data-file /etc/hapee-1.7r2/51Degrees-LiteV3.4.trie 51degrees-property-name-list DeviceType IsMobile IsTablet
The "51degrees-property-name-list" can change depending on the properties you want to use.
Add fetches such as
51d.singlesto your frontend to make use of the data:
http-request set-header X-51D-DeviceTypeMobileTablet %[req.fhdr(User-Agent),51d.single(DeviceType,IsMobile,IsTablet)]
Update the database during runtime
Install the package
Add the following lines to the global section of your configuration:
module-load hapee-lb-51d-update.so 51degrees-update url http://192.168.122.1/51Degrees-LiteV3.4.trie delay 1h log
With this configuration, HAProxy downloads the database every hour, and prints a message in the logs when it succeeds or if it encountered errors during the update.