Tutorials
Bind to an address
In your load balancer configuration, a frontend
listens for and receives connections from clients. A bind
line in a frontend defines the IP address and port on which to listen.
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 binds Jump to heading
To get a list of existing binds in the www
frontend, make a GET request to the binds
endpoint.
Pass the name of the frontend, www
, as part of the URL path.
nix
curl -X GET \--user admin:adminpwd \"http://localhost:5555/v3/services/haproxy/configuration/frontends/www/binds"
nix
curl -X GET \--user admin:adminpwd \"http://localhost:5555/v3/services/haproxy/configuration/frontends/www/binds"
outputjson
[{"name": "http","port": 80}]
outputjson
[{"name": "http","port": 80}]
Pass the name of the frontend, www
, as a query string parameter.
nix
curl -X GET \--user admin:adminpwd \"http://localhost:5555/v2/services/haproxy/configuration/binds?frontend=www"
nix
curl -X GET \--user admin:adminpwd \"http://localhost:5555/v2/services/haproxy/configuration/binds?frontend=www"
outputjson
{"_version": 99,"data": [{"name": "http","port": 80}]}
outputjson
{"_version": 99,"data": [{"name": "http","port": 80}]}
List a specific bind Jump to heading
To get information about a specific bind, add its name to the GET call.
Pass the name of the frontend, www
, and the name of the bind, https
, as part of the URL path.
nix
curl -X GET \--user admin:adminpwd \"http://localhost:5555/v3/services/haproxy/configuration/frontends/www/binds/https"
nix
curl -X GET \--user admin:adminpwd \"http://localhost:5555/v3/services/haproxy/configuration/frontends/www/binds/https"
outputjson
{"address": "*","alpn": "h2","name": "https","port": 443,"ssl": true,"ssl_certificate": "/etc/haproxy/ssl/cert.pem"}
outputjson
{"address": "*","alpn": "h2","name": "https","port": 443,"ssl": true,"ssl_certificate": "/etc/haproxy/ssl/cert.pem"}
Pass the name of the bind, https
, as part of the URL path and the name of the frontend, www
, as a query string parameter.
nix
curl -X GET \--user admin:adminpwd \"http://localhost:5555/v2/services/haproxy/configuration/binds/https?frontend=www"
nix
curl -X GET \--user admin:adminpwd \"http://localhost:5555/v2/services/haproxy/configuration/binds/https?frontend=www"
outputjson
{"_version": 99,"data": {"address": "*","alpn": "h2","name": "https","port": 443,"ssl": true,"ssl_certificate": "/etc/haproxy/ssl/cert.pem"}}
outputjson
{"_version": 99,"data": {"address": "*","alpn": "h2","name": "https","port": 443,"ssl": true,"ssl_certificate": "/etc/haproxy/ssl/cert.pem"}}
Add a bind Jump to heading
Add a bind to the www
frontend by making a POST request to the binds
endpoint. Send the fields to set in the body of the request. Note that in this case, because we are sending an update, we also include the version
URL parameter:
Pass the name of the frontend, www
, as part of the URL path.
nix
CFGVER=$(curl -s -u admin:adminpwd http://localhost:5555/v3/services/haproxy/configuration/version)curl -X POST \--user admin:adminpwd \-H "Content-Type: application/json" \-d '{"name": "https","address": "*","port": 443,"alpn": "h2","ssl": true,"ssl_certificate": "/etc/haproxy/ssl/cert.pem"}' \"http://localhost:5555/v3/services/haproxy/configuration/frontends/www/binds?version=$CFGVER"
nix
CFGVER=$(curl -s -u admin:adminpwd http://localhost:5555/v3/services/haproxy/configuration/version)curl -X POST \--user admin:adminpwd \-H "Content-Type: application/json" \-d '{"name": "https","address": "*","port": 443,"alpn": "h2","ssl": true,"ssl_certificate": "/etc/haproxy/ssl/cert.pem"}' \"http://localhost:5555/v3/services/haproxy/configuration/frontends/www/binds?version=$CFGVER"
Pass the name of the frontend, www
, as a query string parameter.
nix
CFGVER=$(curl -s -u admin:adminpwd http://localhost:5555/v2/services/haproxy/configuration/version)curl -X POST \--user admin:adminpwd \-H "Content-Type: application/json" \-d '{"name": "https","address": "*","port": 443,"alpn": "h2","ssl": true,"ssl_certificate": "/etc/haproxy/ssl/cert.pem"}' \"http://localhost:5555/v2/services/haproxy/configuration/binds?frontend=www&version=$CFGVER"
nix
CFGVER=$(curl -s -u admin:adminpwd http://localhost:5555/v2/services/haproxy/configuration/version)curl -X POST \--user admin:adminpwd \-H "Content-Type: application/json" \-d '{"name": "https","address": "*","port": 443,"alpn": "h2","ssl": true,"ssl_certificate": "/etc/haproxy/ssl/cert.pem"}' \"http://localhost:5555/v2/services/haproxy/configuration/binds?frontend=www&version=$CFGVER"
Replace a bind Jump to heading
To make changes to a bind, you replace it entirely. To replace an existing bind, make a PUT request to the binds
endpoint. In this case, we are updating the bind named https
:
Pass the name of the frontend, www
, and the name of the bind, https
, as part 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 '{"address":"*","alpn":"h2","name":"https","port":8443,"ssl":true,"ssl_certificate":"/etc/haproxy/ssl/cert.pem"}' \"http://localhost:5555/v3/services/haproxy/configuration/frontends/www/binds/https?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 '{"address":"*","alpn":"h2","name":"https","port":8443,"ssl":true,"ssl_certificate":"/etc/haproxy/ssl/cert.pem"}' \"http://localhost:5555/v3/services/haproxy/configuration/frontends/www/binds/https?version=$CFGVER"
Pass the name of the bind, https
, as part of the URL path and the name of the frontend, www
, as a query string parameter.
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 '{"address":"*","alpn":"h2","name":"https","port":8443,"ssl":true,"ssl_certificate":"/etc/haproxy/ssl/cert.pem"}' \"http://localhost:5555/v2/services/haproxy/configuration/binds/https?frontend=www&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 '{"address":"*","alpn":"h2","name":"https","port":8443,"ssl":true,"ssl_certificate":"/etc/haproxy/ssl/cert.pem"}' \"http://localhost:5555/v2/services/haproxy/configuration/binds/https?frontend=www&version=$CFGVER"
Delete a bind Jump to heading
To delete a bind, use the DELETE method:
Pass the name of the frontend, www
, and the name of the bind, https
, as part of the URL path.
nix
CFGVER=$(curl -s -u admin:adminpwd http://localhost:5555/v3/services/haproxy/configuration/version)curl -X DELETE \--user admin:adminpwd \"http://localhost:5555/v3/services/haproxy/configuration/frontends/www/binds/https?version=$CFGVER"
nix
CFGVER=$(curl -s -u admin:adminpwd http://localhost:5555/v3/services/haproxy/configuration/version)curl -X DELETE \--user admin:adminpwd \"http://localhost:5555/v3/services/haproxy/configuration/frontends/www/binds/https?version=$CFGVER"
Pass the name of the bind, https
, as part of the URL path and the name of the frontend, www
, as a query string parameter.
nix
CFGVER=$(curl -s -u admin:adminpwd http://localhost:5555/v2/services/haproxy/configuration/version)curl -X DELETE \--user admin:adminpwd \"http://localhost:5555/v2/services/haproxy/configuration/binds/https?frontend=www&version=$CFGVER"
nix
CFGVER=$(curl -s -u admin:adminpwd http://localhost:5555/v2/services/haproxy/configuration/version)curl -X DELETE \--user admin:adminpwd \"http://localhost:5555/v2/services/haproxy/configuration/binds/https?frontend=www&version=$CFGVER"
Do you have any suggestions on how we can improve the content of this page?