HAProxy Enterprise Documentation 2.8r1

Update the database during runtime

Use the WURFL Update module to keep contents of the device detection database current. This allows you to keep multiple HAProxy Enterprise nodes synced with the latest data.

  1. Install a web server of your choice and host the database file at a URL where HAProxy Enterprise can access. For example, host the file at http://192.168.122.1:8000/wurfl.xml.gz.

  2. Install the package hapee-2.8r1-lb-wurfl-update:

    $ # On Debian/Ubuntu
    $ sudo apt-get install hapee-2.8r1-lb-wurfl-update
    $ # On CentOS/RedHat/Oracle/Photon OS
    $ sudo yum install hapee-2.8r1-lb-wurfl-update
    $ # On SUSE
    $ sudo zypper install hapee-2.8r1-lb-wurfl-update
    $ # On FreeBSD
    $ sudo pkg install hapee-2.8r1-lb-wurfl-update
  3. In the global section of your configuration, add directives similar to the following example:

    global
        module-load hapee-lb-wurfl-update.so
        wurfl-update url http://192.168.122.1:8000/wurfl.xml.gz delay 24h log

    With this configuration, HAProxy Enterprise downloads the database every 24 hours and displays a message in the logs when it succeeds, or when it encounters an error during the update.

wurfl-update

The wurfl-update directive enables updating the database over HTTP from a specified URL. Updating a database with a newer version invalidates any cached lookups (if caching is used), unless you enable checksum and the new and old database contents are identical.

The directive supports the following syntax:

wurfl-update url <url>
   [delay <u> | xdelay <u s b r>]
   [timeout <t>]
   [retries <n>]
   [checksum | modified]
   [hash]
   [source <addr>[:<port>]]
   [log]
   [dontlog-normal]
   [param*]

where:

url <url>

Required. Specifies the database update URL.

delay <u>

Specifies the period between each attempt to download a new database version. The delay is a simplified version of the xdelay keyword.

xdelay <u s b r>

  • <u> specifies the period between each attempt to download a new database version

  • <s> specifies the initial (first) download delay

  • <b> specifies the delay between the download of each element of the database

  • If the download fails, <r> determines the delay for the next attempt

  • Default values are: u = 5m, s = 5s, b = 10s, and r = 30s

  • If HAProxy Enterprise cannot download the new version after three attempts, it cancels and discards the download until the next time interval defined by <u>.

timeout <t>

Specifies the HTTP connection timeout in milliseconds (default) for attempts to download a new database version.

  • The value can be any other unit if you add a unit suffix.

  • Defaults to 5000 milliseconds.

retries <n>

Specifies the number of retries to download a new WURFL database version. If not set, the global retries value applies (defaults to 3).

checksum

If set, this determines the use of the SHA1 control sum to verify that the recently downloaded database is identical to the current one. If it is, then live-reload of the database does not occur, thereby preserving the cached contents (if using caching). See note below.

hash

If set, enables authentication of the downloaded data.

  • Each file undergoing upgrade must have the associated file with SHA1 checksum.

  • A SHA1 checksum file has the extension .sha1.

  • The typical way of creating a SHA1 checksum file is: sha1sum file > file.sha1.

modified

Specifies the use of the time from the Last-Modified response HTTP header. Example: checks whether to update the data using the If-Modified-Since request HTTP header. See note below

source <addr>[:<port>]

Sets the source address for outgoing connections.

  • <addr> is the IPv4 address HAProxy Enterprise binds to before it connects to a server

  • The default value is 0.0.0.0 to let the system select the most optimal address to reach its destination

  • <port> is optional

  • The default value of zero means that the system selects a free port

  • Does not support port ranges

log

Specifies whether to log operation errors.

dontlog-normal

Deactivates logging of successful updates.

param*

Lists other server parameters that are useful for configuring SSL features.


Next up

WURFL InFuze API Reference