Load Balancer Frontends
Frontends define the public-facing entry points for your load balancer. Configure listening ports, TLS termination, and routing rules to direct traffic to backends.
List frontends
Returns a list of frontends for a load balancer.
Request
curl -X GET https://api.upcloud.com/1.3/load-balancer/0a1b2c3d-4e5f-6789-abcd-ef0123456789/frontends \
-u your_username:your_password
Get frontend details
Returns details of a specific frontend.
Request
curl -X GET https://api.upcloud.com/1.3/load-balancer/0a1b2c3d-4e5f-6789-abcd-ef0123456789/frontends/https-frontend \
-u your_username:your_password
Create frontend
Creates a new frontend for a load balancer.
Attributes
- Name
name- Type
- string
- Description
Frontend name (1-255 chars). Required.
- Name
mode- Type
- string
- Description
Protocol mode: "http" or "tcp". Required.
- Name
port- Type
- integer
- Description
Listening port (1-65535). Required.
- Name
default_backend- Type
- string
- Description
Name of the default backend. Required.
- Name
rules- Type
- array
- Description
Routing rules.
- Name
tls_configs- Type
- array
- Description
TLS configurations for HTTPS.
- Name
properties- Type
- object
- Description
Frontend properties (timeouts, proxy protocol).
- Name
networks- Type
- array
- Description
Network bindings.
Request
curl -X POST https://api.upcloud.com/1.3/load-balancer/0a1b2c3d-4e5f-6789-abcd-ef0123456789/frontends \
-u your_username:your_password \
-H "Content-Type: application/json" \
-d '{
"name": "https-frontend",
"mode": "http",
"port": 443,
"default_backend": "web-backend",
"tls_configs": [
{
"name": "default-tls",
"certificate_bundle_uuid": "abc123-def456"
}
],
"properties": {
"timeout_client": 30
}
}'
Modify frontend
Modifies an existing frontend configuration.
Request
curl -X PATCH https://api.upcloud.com/1.3/load-balancer/0a1b2c3d-4e5f-6789-abcd-ef0123456789/frontends/https-frontend \
-u your_username:your_password \
-H "Content-Type: application/json" \
-d '{
"default_backend": "new-backend",
"properties": {
"timeout_client": 60
}
}'
Delete frontend
Deletes a frontend from the load balancer.
Request
curl -X DELETE https://api.upcloud.com/1.3/load-balancer/0a1b2c3d-4e5f-6789-abcd-ef0123456789/frontends/https-frontend \
-u your_username:your_password
Create rule
Creates a routing rule for a frontend. Rules match incoming requests and perform actions like redirects or backend selection.
Attributes
- Name
name- Type
- string
- Description
Rule name. Required.
- Name
priority- Type
- integer
- Description
Rule priority (0-1000). Lower values are evaluated first. Required.
- Name
matchers- Type
- array
- Description
Conditions that must match for the rule to apply. Required.
- Name
actions- Type
- array
- Description
Actions to perform when matchers succeed. Required.
Request
curl -X POST https://api.upcloud.com/1.3/load-balancer/0a1b2c3d-4e5f-6789-abcd-ef0123456789/frontends/https-frontend/rules \
-u your_username:your_password \
-H "Content-Type: application/json" \
-d '{
"name": "api-routing",
"priority": 100,
"matchers": [
{
"type": "path",
"match_path": {
"method": "starts",
"value": "/api/"
}
}
],
"actions": [
{
"type": "use_backend",
"action_use_backend": {
"backend": "api-backend"
}
}
]
}'
List rules
Returns all routing rules for a frontend.
Request
curl -X GET https://api.upcloud.com/1.3/load-balancer/0a1b2c3d-4e5f-6789-abcd-ef0123456789/frontends/https-frontend/rules \
-u your_username:your_password
Modify rule
Modifies an existing routing rule.
Request
curl -X PATCH https://api.upcloud.com/1.3/load-balancer/0a1b2c3d-4e5f-6789-abcd-ef0123456789/frontends/https-frontend/rules/api-routing \
-u your_username:your_password \
-H "Content-Type: application/json" \
-d '{
"priority": 50
}'
Delete rule
Deletes a routing rule.
Request
curl -X DELETE https://api.upcloud.com/1.3/load-balancer/0a1b2c3d-4e5f-6789-abcd-ef0123456789/frontends/https-frontend/rules/api-routing \
-u your_username:your_password
List TLS configs
Returns a list of TLS configurations for a frontend.
Request
curl -X GET https://api.upcloud.com/1.3/load-balancer/0a1b2c3d-4e5f-6789-abcd-ef0123456789/frontends/https-frontend/tls-configs \
-u your_username:your_password
Get TLS config details
Returns details of a specific TLS configuration.
Request
curl -X GET https://api.upcloud.com/1.3/load-balancer/0a1b2c3d-4e5f-6789-abcd-ef0123456789/frontends/https-frontend/tls-configs/default-tls \
-u your_username:your_password
Create TLS config
Creates a TLS configuration for HTTPS termination on a frontend.
Attributes
- Name
name- Type
- string
- Description
TLS config name. Required.
- Name
certificate_bundle_uuid- Type
- string
- Description
UUID of the certificate bundle. Required.
Request
curl -X POST https://api.upcloud.com/1.3/load-balancer/0a1b2c3d-4e5f-6789-abcd-ef0123456789/frontends/https-frontend/tls-configs \
-u your_username:your_password \
-H "Content-Type: application/json" \
-d '{
"name": "example-com-tls",
"certificate_bundle_uuid": "abc123-def456-789012"
}'
Modify TLS config
Modifies an existing TLS configuration.
Attributes
- Name
name- Type
- string
- Description
Updated TLS config name.
- Name
certificate_bundle_uuid- Type
- string
- Description
Updated certificate bundle UUID.
Request
curl -X PATCH https://api.upcloud.com/1.3/load-balancer/0a1b2c3d-4e5f-6789-abcd-ef0123456789/frontends/https-frontend/tls-configs/default-tls \
-u your_username:your_password \
-H "Content-Type: application/json" \
-d '{
"certificate_bundle_uuid": "new-bundle-uuid-123456"
}'
Delete TLS config
Deletes a TLS configuration from a frontend.
Request
curl -X DELETE https://api.upcloud.com/1.3/load-balancer/0a1b2c3d-4e5f-6789-abcd-ef0123456789/frontends/https-frontend/tls-configs/example-com-tls \
-u your_username:your_password