HAProxy Enterprise Documentation 2.3r1

Environment Variables

HAProxy Enterprise can read environment variables at startup.

One way to add environment variables is by appending them to the Environment line in the file /lib/systemd/system/hapee-2.3-lb.service. Then HAProxy Enterprise will have access to them when it starts up as a service.

In the following example, we append an environment variable named PROXYNAME to the Environment line:

[Service]
Environment="CONFIG=/etc/hapee-2.3/hapee-lb.cfg" "PIDFILE=/run/hapee-2.3-lb.pid" "PROXYNAME=lb1"

We then use the env fetch method to read the environment variable from the HAProxy Enterprise configuration. Here, we retrieve the value of the PROXYNAME environment variable to use in the Via HTTP request header:

frontend www
   mode http
   bind :80

   # Uses the value from the environment, 'lb1'
   http-request add-header Via "%[req.ver] %[env(PROXYNAME)]"

Set a new variable or override an existing one

You can also set environment variables from the HAProxy Enterprise configuration. The setenv directive in the global section sets a new or overrides an existing environment variable.

For example, you can override the PROXYNAME variable with this configuration:

global
   setenv PROXYNAME lb2

frontend www
   bind :80

   # Uses the overridden value, 'lb2'
   http-request add-header Via "%[req.ver] %[env(PROXYNAME)]"

Alternatively, use the presetenv directive to set an environment variable. In this case, if that variable is already set, it will not be overridden:

global
   presetenv PROXYNAME lb2

frontend www
   mode http
   bind :80

   # Uses the value from the environment if it was set, 'lb1', otherwise, it uses 'lb2'
   http-request add-header Via "%[req.ver] %[env(PROXYNAME)]"

Next up

Reference Manual