DeviceAtlas
The DeviceAtlas module provides device detection services using the DeviceAtlas database.
Install the DeviceAtlas module
Log into your account at the DeviceAtlas website and download the Enterprise API C library. Copy libda.so to your HAProxy Enterprise server into the directory /lib/x86_64-linux-gnu/.
From your DeviceAtlas account, download the Device Data (JSON) file. Copy it to your HAProxy Enterprise server (e.g. /etc/hapee-1.7/deviceatlas.json).
-
Install the DeviceAtlas module according to your platform:
$ # On Debian/Ubuntu $ sudo apt-get install hapee-1.7r1-lb-da
$ # On CentOS/RedHat/Oracle $ sudo yum install hapee-1.7r1-lb-da
-
In the
global
section of the HAProxy Enterprise configuration file, add the following:global module-load hapee-lb-da.so deviceatlas-json-file
/etc/hapee-1.7/deviceatlas.json Reload the HAProxy Enterprise configuration to apply the changes.
Global directives
The module adds the following global
directives:
Directive | Description |
---|---|
| Loads a DeviceAtlas database. |
| Specifies the separator to use within the output. Defaults to a pipe symbol (|). |
| Sets the log level, which can be set to a number between 0 and 3 (defaults to 0):
|
| The name of the DeviceAtlas Client-side Component cookie, if using client-side properties. Defaults to DAPROPS. |
Fetches and Converters
da-csv-fetch
Use the fetch method da-csv-fetch
to perform a lookup in the database that returns the values of the specified properties.
Syntax
da-csv-fetch(<prop>[,<prop>*])
Example: Create an HTTP request header that contains device information
frontend www
bind :80
mode http
http-request set-header X-DeviceInfo %[da-csv-fetch(primaryHardwareType,osName,osVersion,browserName,browserVersion,browserRenderingEngine)]
Example: Define an ACL named is_mobile
frontend www
bind :80
mode http
acl is_mobile da-csv-fetch(mobileDevice) 1
da-csv-conv
Use the converter da-csv-conv
to perform a lookup in the database that returns the values of the specified properties. It takes the User-Agent header as an input parameter:
Syntax:
da-csv-conv(<prop>[,<prop>*])
Example: Create an HTTP request header that contains device information
frontend www
bind :80
mode http
http-request set-header X-DeviceInfo %[req.hdr(user-agent),da-csv-conv(primaryHardwareType,osName,osVersion,browserName,browserVersion,browserRenderingEngine)]
Next up
WURFL InFuze