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

  1. Get the 51Degrees database in Trie format.

    Note

    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.

    Note

    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.)

  2. Install the 51Degrees module: apt-get install hapee-1.5-lb-51d (or yum install depending on your platform of choice).

  3. In the global section of your configuration, add the following lines:

    module-path        /opt/hapee-1.8/modules/
    module-load hapee-lb-51d.so
    51degrees-data-file /etc/hapee-1.8/51Degrees-LiteV3.4.trie
  4. Add fetches such as 51d.singles to 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

  1. Install the package hapee-1.5-lb-51d-update.

  2. 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.