Tutorials

Manage default settings

In your load balancer configuration, a defaults section defines settings that apply when a frontend, backend, or listen section that follows it doesn’t set those same settings. It offers a way to store common settings in one place.

In APIv2, there was only one, non-named defaults section that you could modify via the defaults endpoint, or use the named_defaults endpoint to modify defaults sections that had names. In APIv3, the defaults endpoint returns the named and non-named endpoints together, giving the non-named ones generic names.

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 defaults Jump to heading

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

nix
curl -X GET \
--user admin:adminpwd \
"http://localhost:5555/v3/services/haproxy/configuration/defaults"
nix
curl -X GET \
--user admin:adminpwd \
"http://localhost:5555/v3/services/haproxy/configuration/defaults"
output
json
[
{
"client_timeout": 600000,
"connect_timeout": 600000,
"dontlognull": "enabled",
"httplog": true,
"mode": "http",
"name": "unnamed_defaults_1",
"redispatch": {
"enabled": "enabled"
},
"retries": 3,
"server_timeout": 600000
}
]
output
json
[
{
"client_timeout": 600000,
"connect_timeout": 600000,
"dontlognull": "enabled",
"httplog": true,
"mode": "http",
"name": "unnamed_defaults_1",
"redispatch": {
"enabled": "enabled"
},
"retries": 3,
"server_timeout": 600000
}
]
nix
curl -X GET \
--user admin:adminpwd \
"http://localhost:5555/v2/services/haproxy/configuration/defaults"
nix
curl -X GET \
--user admin:adminpwd \
"http://localhost:5555/v2/services/haproxy/configuration/defaults"
output
json
{
"_version": 99,
"data":{
"error_files":null,
"client_timeout":30000,
"connect_timeout":10000,
"dontlognull":"enabled",
"forwardfor":{
"enabled":"enabled",
"except":"127.0.0.0/8"
},
"httplog":true,
"mode":"http",
"redispatch":{
"enabled":"enabled"
},
"retries":3,
"server_timeout":30000
}
}
output
json
{
"_version": 99,
"data":{
"error_files":null,
"client_timeout":30000,
"connect_timeout":10000,
"dontlognull":"enabled",
"forwardfor":{
"enabled":"enabled",
"except":"127.0.0.0/8"
},
"httplog":true,
"mode":"http",
"redispatch":{
"enabled":"enabled"
},
"retries":3,
"server_timeout":30000
}
}

Replace defaults Jump to heading

To make changes to a defaults section, you must replace its contents entirely. To replace a defaults section, make a PUT request to the defaults endpoint, passing the name of the defaults section at the end of the URL path:

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 '{
"error_files":null,
"client_timeout":10000,
"connect_timeout":5000,
"dontlognull":"enabled",
"forwardfor":{
"enabled":"enabled",
"except":"127.0.0.0/8"
},
"httplog":true,
"mode":"http",
"redispatch":{
"enabled":"enabled"
},
"retries":3,
"server_timeout":10000
}' \
"http://localhost:5555/v3/services/haproxy/configuration/defaults/unnamed_defaults_1?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 '{
"error_files":null,
"client_timeout":10000,
"connect_timeout":5000,
"dontlognull":"enabled",
"forwardfor":{
"enabled":"enabled",
"except":"127.0.0.0/8"
},
"httplog":true,
"mode":"http",
"redispatch":{
"enabled":"enabled"
},
"retries":3,
"server_timeout":10000
}' \
"http://localhost:5555/v3/services/haproxy/configuration/defaults/unnamed_defaults_1?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 '{
"error_files":null,
"client_timeout":10000,
"connect_timeout":5000,
"dontlognull":"enabled",
"forwardfor":{
"enabled":"enabled",
"except":"127.0.0.0/8"
},
"httplog":true,
"mode":"http",
"redispatch":{
"enabled":"enabled"
},
"retries":3,
"server_timeout":10000
}' \
"http://localhost:5555/v2/services/haproxy/configuration/defaults?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 '{
"error_files":null,
"client_timeout":10000,
"connect_timeout":5000,
"dontlognull":"enabled",
"forwardfor":{
"enabled":"enabled",
"except":"127.0.0.0/8"
},
"httplog":true,
"mode":"http",
"redispatch":{
"enabled":"enabled"
},
"retries":3,
"server_timeout":10000
}' \
"http://localhost:5555/v2/services/haproxy/configuration/defaults?version=$CFGVER"

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