Tutorials

Manage global settings

In your load balancer configuration, a global section defines settings that affect how the load balancer runs.

You can manage global settings programmatically by calling the API endpoint /services/haproxy/configuration/global.

Note

The version parameter in DELETE, POST, and PUT requests must match the system’s current version. The APIv3 examples in this section use a GET request to /v3/services/haproxy/configuration/version to retrieve the version and populate the CFGVER environment variable for the URL version parameter.

List global settings Jump to heading

To get the contents of a global section, make a GET request to the global endpoint:

nix
curl -X GET \
--user admin:adminpwd \
"http://localhost:5555/v3/services/haproxy/configuration/global"
nix
curl -X GET \
--user admin:adminpwd \
"http://localhost:5555/v3/services/haproxy/configuration/global"
output
json
{
"runtime_apis": [
{
"level": "admin",
"mode": "660",
"address": "/var/run/haproxy.sock"
}
],
"insecure_fork_wanted": true,
"master-worker": true
}
output
json
{
"runtime_apis": [
{
"level": "admin",
"mode": "660",
"address": "/var/run/haproxy.sock"
}
],
"insecure_fork_wanted": true,
"master-worker": true
}
nix
curl -X GET \
--user admin:adminpwd \
"http://localhost:5555/v2/services/haproxy/configuration/global"
nix
curl -X GET \
--user admin:adminpwd \
"http://localhost:5555/v2/services/haproxy/configuration/global"
output
json
{
"_version": 99,
"data": {
"runtime_apis": [
{
"level": "admin",
"mode": "660",
"address": "/var/run/haproxy.sock"
}
],
"insecure_fork_wanted": true,
"master-worker": true
}
}
output
json
{
"_version": 99,
"data": {
"runtime_apis": [
{
"level": "admin",
"mode": "660",
"address": "/var/run/haproxy.sock"
}
],
"insecure_fork_wanted": true,
"master-worker": true
}
}

Replace global settings Jump to heading

To make changes to global settings, you must replace them entirely. To replace global settings, make a PUT request to the global endpoint, passing the fields in the body of the request. In this example, we replace the settings to include maxconn, user, group, pidfile, and runtime_apis:

nix
CFGVER=$(curl -s -u admin:adminpwd http://localhost:5555/v3/services/haproxy/configuration/version)
curl -X PUT \
--user admin:adminpwd \
-H "Content-Type: application/json" \
-d '{
"maxconn": 100000,
"chroot": "/var/empty",
"user": "haproxy",
"group": "haproxy",
"pidfile": "/var/run/haproxy/haproxy.pid",
"runtime_apis": [
{
"address": "/var/run/haproxy.sock",
"level": "admin",
"mode": "660"
},
{
"address": "ipv4@0.0.0.0:9999",
"level": "admin"
}
]
}' \
"http://localhost:5555/v3/services/haproxy/configuration/global?version=$CFGVER"
nix
CFGVER=$(curl -s -u admin:adminpwd http://localhost:5555/v3/services/haproxy/configuration/version)
curl -X PUT \
--user admin:adminpwd \
-H "Content-Type: application/json" \
-d '{
"maxconn": 100000,
"chroot": "/var/empty",
"user": "haproxy",
"group": "haproxy",
"pidfile": "/var/run/haproxy/haproxy.pid",
"runtime_apis": [
{
"address": "/var/run/haproxy.sock",
"level": "admin",
"mode": "660"
},
{
"address": "ipv4@0.0.0.0:9999",
"level": "admin"
}
]
}' \
"http://localhost:5555/v3/services/haproxy/configuration/global?version=$CFGVER"
nix
CFGVER=$(curl -s -u admin:adminpwd http://localhost:5555/v2/services/haproxy/configuration/version)
curl -X PUT \
--user admin:adminpwd \
-H "Content-Type: application/json" \
-d '{
"maxconn": 100000,
"chroot": "/var/empty",
"user": "haproxy",
"group": "haproxy",
"pidfile": "/var/run/haproxy/haproxy.pid",
"runtime_apis": [
{
"address": "/var/run/haproxy.sock",
"level": "admin",
"mode": "660"
},
{
"address": "ipv4@0.0.0.0:9999",
"level": "admin"
}
]
}' \
"http://localhost:5555/v2/services/haproxy/configuration/global?version=$CFGVER"
nix
CFGVER=$(curl -s -u admin:adminpwd http://localhost:5555/v2/services/haproxy/configuration/version)
curl -X PUT \
--user admin:adminpwd \
-H "Content-Type: application/json" \
-d '{
"maxconn": 100000,
"chroot": "/var/empty",
"user": "haproxy",
"group": "haproxy",
"pidfile": "/var/run/haproxy/haproxy.pid",
"runtime_apis": [
{
"address": "/var/run/haproxy.sock",
"level": "admin",
"mode": "660"
},
{
"address": "ipv4@0.0.0.0:9999",
"level": "admin"
}
]
}' \
"http://localhost:5555/v2/services/haproxy/configuration/global?version=$CFGVER"

Do you have any suggestions on how we can improve the content of this page?