NodeBalancers v4.176.0
NodeBalancers List
Returns a paginated list of NodeBalancers you have access to.
Authorizations
personalAccessToken | |
oauth | nodebalancers:read_only |
Query Parameters
page |
The page of a collection to return. |
page_size |
The number of items to return per page. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/nodebalancers
linode-cli nodebalancers list
Response Samples
{
"data": [
{
"client_conn_throttle": 0,
"created": "2018-01-01T00:01:01",
"hostname": "192.0.2.1.ip.linodeusercontent.com",
"id": 12345,
"ipv4": "203.0.113.1",
"ipv6": null,
"label": "balancer12345",
"region": "us-east",
"tags": [
"example tag",
"another example"
],
"transfer": {
"in": 28.91200828552246,
"out": 3.5487728118896484,
"total": 32.46078109741211
},
"updated": "2018-03-01T00:01:01"
}
],
"page": 1,
"pages": 1,
"results": 1
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
data | array
of objects
| ||||||||||||||||||||||||||||
page | integer The current page. | ||||||||||||||||||||||||||||
pages | integer The total number of pages. | ||||||||||||||||||||||||||||
results | integer The total number of results. |
errors | array
of objects
|
NodeBalancer Create
Creates a NodeBalancer in the requested Region. Only available in
Regions with “NodeBalancers” in their capabilities
.
NodeBalancers require a port Config with at least one backend Node to start serving requests.
When using the Linode CLI to create a NodeBalancer, first create a NodeBalancer without any Configs. Then, create Configs and Nodes for that NodeBalancer with the respective Config Create and Node Create commands.
Authorizations
personalAccessToken | |
oauth | nodebalancers:read_write |
Request Samples
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"region": "us-east",
"label": "balancer12345",
"client_conn_throttle": 0,
"configs": [
{
"port": 443,
"protocol": "https",
"algorithm": "roundrobin",
"stickiness": "http_cookie",
"check": "http_body",
"check_interval": 90,
"check_timeout": 10,
"check_attempts": 3,
"check_path": "/test",
"check_body": "it works",
"check_passive": true,
"proxy_protocol": "none",
"cipher_suite": "recommended",
"ssl_cert": "-----BEGIN CERTIFICATE-----\nCERTIFICATE_INFORMATION\n-----END CERTIFICATE-----",
"ssl_key": "-----BEGIN PRIVATE KEY-----\nPRIVATE_KEY_INFORMATION\n-----END PRIVATE KEY-----",
"nodes": [
{
"address": "192.168.210.120:80",
"label": "node1",
"weight": 50,
"mode": "accept"
},
{
"address": "192.168.210.122:81",
"label": "node2",
"weight": 50,
"mode": "accept"
}
]
}
]
}' \
https://api.linode.com/v4/nodebalancers
linode-cli nodebalancers create \
--region us-east \
--label balancer12345 \
--client_conn_throttle 0
Request Body Schema
client_conn_throttle | integer
0..20Throttle connections per second. Set to 0 (zero) to disable throttling. | ||||||||||||||||||||||||||||||||||||||||
configs | array
of objects The port Config(s) to create for this NodeBalancer. Each Config must have a unique port and at least one Node.
| ||||||||||||||||||||||||||||||||||||||||
firewall_id | integer The ID of the Firewall to assign to the NodeBalancer.
| ||||||||||||||||||||||||||||||||||||||||
label | string
3..32
charactersThis NodeBalancer’s label. These must be unique on your Account. | ||||||||||||||||||||||||||||||||||||||||
region Required | string The ID of the Region to create this NodeBalancer in. | ||||||||||||||||||||||||||||||||||||||||
tags | array
of strings An array of Tags applied to this object. Tags are for organizational purposes only. |
Response Samples
{
"client_conn_throttle": 0,
"created": "2018-01-01T00:01:01",
"hostname": "192.0.2.1.ip.linodeusercontent.com",
"id": 12345,
"ipv4": "203.0.113.1",
"ipv6": null,
"label": "balancer12345",
"region": "us-east",
"tags": [
"example tag",
"another example"
],
"transfer": {
"in": 28.91200828552246,
"out": 3.5487728118896484,
"total": 32.46078109741211
},
"updated": "2018-03-01T00:01:01"
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
client_conn_throttle | integer
0..20Throttle connections per second. Set to 0 (zero) to disable throttling. | ||||||
created | string<date-time> When this NodeBalancer was created. | ||||||
hostname | string This NodeBalancer’s hostname, beginning with its IP address and ending with .ip.linodeusercontent.com. | ||||||
id | integer This NodeBalancer’s unique ID. | ||||||
ipv4 | string<ip> This NodeBalancer’s public IPv4 address. | ||||||
ipv6 Nullable | string<ip> This NodeBalancer’s public IPv6 address. | ||||||
label | string
3..32
charactersThis NodeBalancer’s label. These must be unique on your Account. | ||||||
region | string The Region where this NodeBalancer is located. NodeBalancers only support backends in the same Region. | ||||||
tags | array
of strings An array of Tags applied to this object. Tags are for organizational purposes only. | ||||||
transfer | object Information about the amount of transfer this NodeBalancer has had so far this month.
| ||||||
updated | string<date-time> When this NodeBalancer was last updated. |
errors | array
of objects
|
NodeBalancer Delete
Deletes a NodeBalancer.
This is a destructive action and cannot be undone.
Deleting a NodeBalancer will also delete all associated Configs and Nodes, although the backend servers represented by the Nodes will not be changed or removed. Deleting a NodeBalancer will cause you to lose access to the IP Addresses assigned to this NodeBalancer.
Authorizations
personalAccessToken | |
oauth | nodebalancers:read_write |
Path Parameters
nodeBalancerId | integer RequiredThe ID of the NodeBalancer to access. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
-X DELETE \
https://api.linode.com/v4/nodebalancers/12345
linode-cli nodebalancers delete 12345
Response Samples
{}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
errors | array
of objects
|
NodeBalancer View
Returns a single NodeBalancer you can access.
Authorizations
personalAccessToken | |
oauth | nodebalancers:read_only |
Path Parameters
nodeBalancerId | integer RequiredThe ID of the NodeBalancer to access. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/nodebalancers/12345
linode-cli nodebalancers view 12345
Response Samples
{
"client_conn_throttle": 0,
"created": "2018-01-01T00:01:01",
"hostname": "192.0.2.1.ip.linodeusercontent.com",
"id": 12345,
"ipv4": "203.0.113.1",
"ipv6": null,
"label": "balancer12345",
"region": "us-east",
"tags": [
"example tag",
"another example"
],
"transfer": {
"in": 28.91200828552246,
"out": 3.5487728118896484,
"total": 32.46078109741211
},
"updated": "2018-03-01T00:01:01"
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
client_conn_throttle | integer
0..20Throttle connections per second. Set to 0 (zero) to disable throttling. | ||||||
created | string<date-time> When this NodeBalancer was created. | ||||||
hostname | string This NodeBalancer’s hostname, beginning with its IP address and ending with .ip.linodeusercontent.com. | ||||||
id | integer This NodeBalancer’s unique ID. | ||||||
ipv4 | string<ip> This NodeBalancer’s public IPv4 address. | ||||||
ipv6 Nullable | string<ip> This NodeBalancer’s public IPv6 address. | ||||||
label | string
3..32
charactersThis NodeBalancer’s label. These must be unique on your Account. | ||||||
region | string The Region where this NodeBalancer is located. NodeBalancers only support backends in the same Region. | ||||||
tags | array
of strings An array of Tags applied to this object. Tags are for organizational purposes only. | ||||||
transfer | object Information about the amount of transfer this NodeBalancer has had so far this month.
| ||||||
updated | string<date-time> When this NodeBalancer was last updated. |
errors | array
of objects
|
NodeBalancer Update
Updates information about a NodeBalancer you can access.
Authorizations
personalAccessToken | |
oauth | nodebalancers:read_write |
Path Parameters
nodeBalancerId | integer RequiredThe ID of the NodeBalancer to access. |
Request Samples
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT -d '{
"label": "balancer12345",
"client_conn_throttle": 0
}' \
https://api.linode.com/v4/nodebalancers/12345
linode-cli nodebalancers update 12345 \
--label balancer12345 \
--client_conn_throttle 0
Request Body Schema
client_conn_throttle | integer
0..20Throttle connections per second. Set to 0 (zero) to disable throttling. |
label | string
3..32
charactersThis NodeBalancer’s label. These must be unique on your Account. |
tags | array
of strings An array of Tags applied to this object. Tags are for organizational purposes only. |
Response Samples
{
"client_conn_throttle": 0,
"created": "2018-01-01T00:01:01",
"hostname": "192.0.2.1.ip.linodeusercontent.com",
"id": 12345,
"ipv4": "203.0.113.1",
"ipv6": null,
"label": "balancer12345",
"region": "us-east",
"tags": [
"example tag",
"another example"
],
"transfer": {
"in": 28.91200828552246,
"out": 3.5487728118896484,
"total": 32.46078109741211
},
"updated": "2018-03-01T00:01:01"
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
client_conn_throttle | integer
0..20Throttle connections per second. Set to 0 (zero) to disable throttling. | ||||||
created | string<date-time> When this NodeBalancer was created. | ||||||
hostname | string This NodeBalancer’s hostname, beginning with its IP address and ending with .ip.linodeusercontent.com. | ||||||
id | integer This NodeBalancer’s unique ID. | ||||||
ipv4 | string<ip> This NodeBalancer’s public IPv4 address. | ||||||
ipv6 Nullable | string<ip> This NodeBalancer’s public IPv6 address. | ||||||
label | string
3..32
charactersThis NodeBalancer’s label. These must be unique on your Account. | ||||||
region | string The Region where this NodeBalancer is located. NodeBalancers only support backends in the same Region. | ||||||
tags | array
of strings An array of Tags applied to this object. Tags are for organizational purposes only. | ||||||
transfer | object Information about the amount of transfer this NodeBalancer has had so far this month.
| ||||||
updated | string<date-time> When this NodeBalancer was last updated. |
errors | array
of objects
|
Configs List
Returns a paginated list of NodeBalancer Configs associated with this NodeBalancer. NodeBalancer Configs represent individual ports that this NodeBalancer will accept traffic on, one Config per port.
For example, if you wanted to accept standard HTTP traffic, you would need a Config listening on port 80.
Authorizations
personalAccessToken | |
oauth | nodebalancers:read_only |
Path Parameters
nodeBalancerId | integer RequiredThe ID of the NodeBalancer to access. |
Query Parameters
page |
The page of a collection to return. |
page_size |
The number of items to return per page. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/nodebalancers/12345/configs
linode-cli nodebalancers configs-list 12345
Response Samples
{
"data": [
{
"algorithm": "roundrobin",
"check": "http_body",
"check_attempts": 3,
"check_body": "it works",
"check_interval": 90,
"check_passive": true,
"check_path": "/test",
"check_timeout": 10,
"cipher_suite": "recommended",
"id": 4567,
"nodebalancer_id": 12345,
"nodes_status": {
"down": 0,
"up": 4
},
"port": 80,
"protocol": "http",
"proxy_protocol": "none",
"ssl_cert": "<REDACTED>",
"ssl_commonname": "www.example.com",
"ssl_fingerprint": "00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13",
"ssl_key": "<REDACTED>",
"stickiness": "http_cookie"
}
],
"page": 1,
"pages": 1,
"results": 1
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
data | array
of objects
| ||||||||||||||||||||||||||||||||||||||||||||
page | integer The current page. | ||||||||||||||||||||||||||||||||||||||||||||
pages | integer The total number of pages. | ||||||||||||||||||||||||||||||||||||||||||||
results | integer The total number of results. |
errors | array
of objects
|
Config Create
Creates a NodeBalancer Config, which allows the NodeBalancer to accept traffic on a new port. You will need to add NodeBalancer Nodes to the new Config before it can actually serve requests.
Authorizations
personalAccessToken | |
oauth | nodebalancers:read_write |
Path Parameters
nodeBalancerId | integer RequiredThe ID of the NodeBalancer to access. |
Request Samples
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"port": 443,
"protocol": "https",
"algorithm": "roundrobin",
"stickiness": "http_cookie",
"check": "http_body",
"check_interval": 90,
"check_timeout": 10,
"check_attempts": 3,
"check_path": "/test",
"check_body": "it works",
"check_passive": true,
"proxy_protocol": "none",
"ssl_cert": "-----BEGIN CERTIFICATE-----\nCERTIFICATE_INFORMATION\n-----END CERTIFICATE-----",
"ssl_key": "-----BEGIN PRIVATE KEY-----\nPRIVATE_KEY_INFORMATION\n-----END PRIVATE KEY-----",
"cipher_suite": "recommended"
}' \
https://api.linode.com/v4/nodebalancers/12345/configs
linode-cli nodebalancers config-create 12345 \
--port 443 \
--protocol https \
--algorithm roundrobin \
--stickiness http_cookie \
--check http_body \
--check_interval 90 \
--check_timeout 10 \
--check_attempts 3 \
--check_path "/test" \
--check_body "it works" \
--check_passive true \
--proxy_protocol "none" \
--ssl_cert "-----BEGIN CERTIFICATE-----
CERTIFICATE_INFORMATION
-----END CERTIFICATE-----" \
--ssl_key "-----BEGIN PRIVATE KEY-----
PRIVATE_KEY_INFORMATION
-----END PRIVATE KEY-----" \
--cipher_suite recommended
Request Body Schema
algorithm | string Enum:
roundrobin
leastconn
source
Default:
roundrobin What algorithm this NodeBalancer should use for routing traffic to backends. |
check | string Enum:
none
connection
http
http_body
Default:
none The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down.
|
check_attempts | integer
1..30Default:
3 How many times to attempt a check before considering a backend to be down. |
check_body | string This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. |
check_interval | integer Default:
31 How often, in seconds, to check that backends are up and serving requests. Must be greater than |
check_passive | boolean Default:
true If true, any response from this backend with a |
check_path | string The URL path to check on each backend. If the backend does not respond to this request it is considered to be down. |
check_timeout | integer
1..30Default:
30 How long, in seconds, to wait for a check attempt before considering it failed. Must be less than |
cipher_suite | string Enum:
recommended
legacy
Default:
recommended What ciphers to use for SSL connections served by this NodeBalancer.
|
port | integer
1..65535Default:
80 The port this Config is for. These values must be unique across configs on a single NodeBalancer (you can’t have two configs for port 80, for example). While some ports imply some protocols, no enforcement is done and you may configure your NodeBalancer however is useful to you. For example, while port 443 is generally used for HTTPS, you do not need SSL configured to have a NodeBalancer listening on port 443. |
protocol | string Enum:
http
https
tcp
Default:
http The protocol this port is configured to serve.
Review our guide on Available Protocols for information on protocol features. |
proxy_protocol | string Enum:
none
v1
v2
Default:
none ProxyProtocol is a TCP extension that sends initial TCP connection information such as source/destination IPs and ports to backend devices. This information would be lost otherwise. Backend devices must be configured to work with ProxyProtocol if enabled.
|
ssl_cert Nullable | string<ssl-cert> The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL certificate and Certificate Authority chain) that should be served on this NodeBalancerConfig’s port. Line breaks must be represented as “\n” in the string for requests (but not when using the Linode CLI). Diffie-Hellman Parameters can be included in this value to enable forward secrecy. The contents of this field will not be shown in any responses that display
the NodeBalancerConfig. Instead, The read-only |
ssl_key Nullable | string<ssl-key> The PEM-formatted private key for the SSL certificate set in the Line breaks must be represented as “\n” in the string for requests (but not when using the Linode CLI). The contents of this field will not be shown in any responses that display
the NodeBalancerConfig. Instead, The read-only |
stickiness | string Enum:
none
table
http_cookie
Default:
none Controls how session stickiness is handled on this port.
|
Response Samples
{
"algorithm": "roundrobin",
"check": "http_body",
"check_attempts": 3,
"check_body": "it works",
"check_interval": 90,
"check_passive": true,
"check_path": "/test",
"check_timeout": 10,
"cipher_suite": "recommended",
"id": 4567,
"nodebalancer_id": 12345,
"nodes_status": {
"down": 0,
"up": 4
},
"port": 80,
"protocol": "http",
"proxy_protocol": "none",
"ssl_cert": "<REDACTED>",
"ssl_commonname": "www.example.com",
"ssl_fingerprint": "00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13",
"ssl_key": "<REDACTED>",
"stickiness": "http_cookie"
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
algorithm | string Enum:
roundrobin
leastconn
source
Default:
roundrobin What algorithm this NodeBalancer should use for routing traffic to backends. | ||||
check | string Enum:
none
connection
http
http_body
Default:
none The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down.
| ||||
check_attempts | integer
1..30Default:
3 How many times to attempt a check before considering a backend to be down. | ||||
check_body | string This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. | ||||
check_interval | integer Default:
31 How often, in seconds, to check that backends are up and serving requests. Must be greater than | ||||
check_passive | boolean Default:
true If true, any response from this backend with a | ||||
check_path | string The URL path to check on each backend. If the backend does not respond to this request it is considered to be down. | ||||
check_timeout | integer
1..30Default:
30 How long, in seconds, to wait for a check attempt before considering it failed. Must be less than | ||||
cipher_suite | string Enum:
recommended
legacy
Default:
recommended What ciphers to use for SSL connections served by this NodeBalancer.
| ||||
id | integer This config’s unique ID | ||||
nodebalancer_id | integer The ID for the NodeBalancer this config belongs to. | ||||
nodes_status | object A structure containing information about the health of the backends for this port. This information is updated periodically as checks are performed against backends.
| ||||
port | integer
1..65535Default:
80 The port this Config is for. These values must be unique across configs on a single NodeBalancer (you can’t have two configs for port 80, for example). While some ports imply some protocols, no enforcement is done and you may configure your NodeBalancer however is useful to you. For example, while port 443 is generally used for HTTPS, you do not need SSL configured to have a NodeBalancer listening on port 443. | ||||
protocol | string Enum:
http
https
tcp
Default:
http The protocol this port is configured to serve.
Review our guide on Available Protocols for information on protocol features. | ||||
proxy_protocol | string Enum:
none
v1
v2
Default:
none ProxyProtocol is a TCP extension that sends initial TCP connection information such as source/destination IPs and ports to backend devices. This information would be lost otherwise. Backend devices must be configured to work with ProxyProtocol if enabled.
| ||||
ssl_cert Nullable | string<ssl-cert> The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL certificate and Certificate Authority chain) that should be served on this NodeBalancerConfig’s port. Line breaks must be represented as “\n” in the string for requests (but not when using the Linode CLI). Diffie-Hellman Parameters can be included in this value to enable forward secrecy. The contents of this field will not be shown in any responses that display
the NodeBalancerConfig. Instead, The read-only | ||||
ssl_commonname | string The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. | ||||
ssl_fingerprint | string The read-only SHA1-encoded fingerprint automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. | ||||
ssl_key Nullable | string<ssl-key> The PEM-formatted private key for the SSL certificate set in the Line breaks must be represented as “\n” in the string for requests (but not when using the Linode CLI). The contents of this field will not be shown in any responses that display
the NodeBalancerConfig. Instead, The read-only | ||||
stickiness | string Enum:
none
table
http_cookie
Default:
none Controls how session stickiness is handled on this port.
|
errors | array
of objects
|
Config Delete
Deletes the Config for a port of this NodeBalancer.
This cannot be undone.
Once completed, this NodeBalancer will no longer respond to requests on the given port. This also deletes all associated NodeBalancerNodes, but the Linodes they were routing traffic to will be unchanged and will not be removed.
Authorizations
personalAccessToken | |
oauth | nodebalancers:read_write |
Path Parameters
nodeBalancerId | integer RequiredThe ID of the NodeBalancer to access. |
configId | integer RequiredThe ID of the config to access. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
-X DELETE \
https://api.linode.com/v4/nodebalancers/12345/configs/4567
linode-cli nodebalancers config-delete \
12345 4567
Response Samples
{}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
errors | array
of objects
|
Config View
Returns configuration information for a single port of this NodeBalancer.
Authorizations
personalAccessToken | |
oauth | nodebalancers:read_only |
Path Parameters
nodeBalancerId | integer RequiredThe ID of the NodeBalancer to access. |
configId | integer RequiredThe ID of the config to access. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/nodebalancers/12345/configs/4567
linode-cli nodebalancers config-view \
12345 4567
Response Samples
{
"algorithm": "roundrobin",
"check": "http_body",
"check_attempts": 3,
"check_body": "it works",
"check_interval": 90,
"check_passive": true,
"check_path": "/test",
"check_timeout": 10,
"cipher_suite": "recommended",
"id": 4567,
"nodebalancer_id": 12345,
"nodes_status": {
"down": 0,
"up": 4
},
"port": 80,
"protocol": "http",
"proxy_protocol": "none",
"ssl_cert": "<REDACTED>",
"ssl_commonname": "www.example.com",
"ssl_fingerprint": "00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13",
"ssl_key": "<REDACTED>",
"stickiness": "http_cookie"
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
algorithm | string Enum:
roundrobin
leastconn
source
Default:
roundrobin What algorithm this NodeBalancer should use for routing traffic to backends. | ||||
check | string Enum:
none
connection
http
http_body
Default:
none The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down.
| ||||
check_attempts | integer
1..30Default:
3 How many times to attempt a check before considering a backend to be down. | ||||
check_body | string This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. | ||||
check_interval | integer Default:
31 How often, in seconds, to check that backends are up and serving requests. Must be greater than | ||||
check_passive | boolean Default:
true If true, any response from this backend with a | ||||
check_path | string The URL path to check on each backend. If the backend does not respond to this request it is considered to be down. | ||||
check_timeout | integer
1..30Default:
30 How long, in seconds, to wait for a check attempt before considering it failed. Must be less than | ||||
cipher_suite | string Enum:
recommended
legacy
Default:
recommended What ciphers to use for SSL connections served by this NodeBalancer.
| ||||
id | integer This config’s unique ID | ||||
nodebalancer_id | integer The ID for the NodeBalancer this config belongs to. | ||||
nodes_status | object A structure containing information about the health of the backends for this port. This information is updated periodically as checks are performed against backends.
| ||||
port | integer
1..65535Default:
80 The port this Config is for. These values must be unique across configs on a single NodeBalancer (you can’t have two configs for port 80, for example). While some ports imply some protocols, no enforcement is done and you may configure your NodeBalancer however is useful to you. For example, while port 443 is generally used for HTTPS, you do not need SSL configured to have a NodeBalancer listening on port 443. | ||||
protocol | string Enum:
http
https
tcp
Default:
http The protocol this port is configured to serve.
Review our guide on Available Protocols for information on protocol features. | ||||
proxy_protocol | string Enum:
none
v1
v2
Default:
none ProxyProtocol is a TCP extension that sends initial TCP connection information such as source/destination IPs and ports to backend devices. This information would be lost otherwise. Backend devices must be configured to work with ProxyProtocol if enabled.
| ||||
ssl_cert Nullable | string<ssl-cert> The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL certificate and Certificate Authority chain) that should be served on this NodeBalancerConfig’s port. Line breaks must be represented as “\n” in the string for requests (but not when using the Linode CLI). Diffie-Hellman Parameters can be included in this value to enable forward secrecy. The contents of this field will not be shown in any responses that display
the NodeBalancerConfig. Instead, The read-only | ||||
ssl_commonname | string The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. | ||||
ssl_fingerprint | string The read-only SHA1-encoded fingerprint automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. | ||||
ssl_key Nullable | string<ssl-key> The PEM-formatted private key for the SSL certificate set in the Line breaks must be represented as “\n” in the string for requests (but not when using the Linode CLI). The contents of this field will not be shown in any responses that display
the NodeBalancerConfig. Instead, The read-only | ||||
stickiness | string Enum:
none
table
http_cookie
Default:
none Controls how session stickiness is handled on this port.
|
errors | array
of objects
|
Config Update
Updates the configuration for a single port on a NodeBalancer.
Authorizations
personalAccessToken | |
oauth | nodebalancers:read_write |
Path Parameters
nodeBalancerId | integer RequiredThe ID of the NodeBalancer to access. |
configId | integer RequiredThe ID of the config to access. |
Request Samples
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT -d '{
"port": 443,
"protocol": "https",
"algorithm": "roundrobin",
"stickiness": "http_cookie",
"check": "http_body",
"check_interval": 90,
"check_timeout": 10,
"check_attempts": 3,
"check_path": "/test",
"check_body": "it works",
"check_passive": true,
"proxy_protocol": "none",
"ssl_cert": "-----BEGIN CERTIFICATE-----\nCERTIFICATE_INFORMATION\n-----END CERTIFICATE-----",
"ssl_key": "-----BEGIN PRIVATE KEY-----\nPRIVATE_KEY_INFORMATION\n-----END PRIVATE KEY-----",
"cipher_suite": "recommended"
}' \
https://api.linode.com/v4/nodebalancers/12345/configs/4567
linode-cli nodebalancers config-update \
12345 4567 \
--port 443 \
--protocol https \
--algorithm roundrobin \
--stickiness http_cookie \
--check http_body \
--check_interval 90 \
--check_timeout 10 \
--check_attempts 3 \
--check_path "/test" \
--check_body "it works" \
--check_passive true \
--proxy_protocol "none" \
--ssl_cert "-----BEGIN CERTIFICATE-----
CERTIFICATE_INFORMATION
-----END CERTIFICATE-----" \
--ssl_key "-----BEGIN PRIVATE KEY-----
PRIVATE_KEY_INFORMATION
-----END PRIVATE KEY-----" \
--cipher_suite recommended
Request Body Schema
algorithm | string Enum:
roundrobin
leastconn
source
Default:
roundrobin What algorithm this NodeBalancer should use for routing traffic to backends. |
check | string Enum:
none
connection
http
http_body
Default:
none The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down.
|
check_attempts | integer
1..30Default:
3 How many times to attempt a check before considering a backend to be down. |
check_body | string This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. |
check_interval | integer Default:
31 How often, in seconds, to check that backends are up and serving requests. Must be greater than |
check_passive | boolean Default:
true If true, any response from this backend with a |
check_path | string The URL path to check on each backend. If the backend does not respond to this request it is considered to be down. |
check_timeout | integer
1..30Default:
30 How long, in seconds, to wait for a check attempt before considering it failed. Must be less than |
cipher_suite | string Enum:
recommended
legacy
Default:
recommended What ciphers to use for SSL connections served by this NodeBalancer.
|
port | integer
1..65535Default:
80 The port this Config is for. These values must be unique across configs on a single NodeBalancer (you can’t have two configs for port 80, for example). While some ports imply some protocols, no enforcement is done and you may configure your NodeBalancer however is useful to you. For example, while port 443 is generally used for HTTPS, you do not need SSL configured to have a NodeBalancer listening on port 443. |
protocol | string Enum:
http
https
tcp
Default:
http The protocol this port is configured to serve.
Review our guide on Available Protocols for information on protocol features. |
proxy_protocol | string Enum:
none
v1
v2
Default:
none ProxyProtocol is a TCP extension that sends initial TCP connection information such as source/destination IPs and ports to backend devices. This information would be lost otherwise. Backend devices must be configured to work with ProxyProtocol if enabled.
|
ssl_cert Nullable | string<ssl-cert> The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL certificate and Certificate Authority chain) that should be served on this NodeBalancerConfig’s port. Line breaks must be represented as “\n” in the string for requests (but not when using the Linode CLI). Diffie-Hellman Parameters can be included in this value to enable forward secrecy. The contents of this field will not be shown in any responses that display
the NodeBalancerConfig. Instead, The read-only |
ssl_key Nullable | string<ssl-key> The PEM-formatted private key for the SSL certificate set in the Line breaks must be represented as “\n” in the string for requests (but not when using the Linode CLI). The contents of this field will not be shown in any responses that display
the NodeBalancerConfig. Instead, The read-only |
stickiness | string Enum:
none
table
http_cookie
Default:
none Controls how session stickiness is handled on this port.
|
Response Samples
{
"algorithm": "roundrobin",
"check": "http_body",
"check_attempts": 3,
"check_body": "it works",
"check_interval": 90,
"check_passive": true,
"check_path": "/test",
"check_timeout": 10,
"cipher_suite": "recommended",
"id": 4567,
"nodebalancer_id": 12345,
"nodes_status": {
"down": 0,
"up": 4
},
"port": 80,
"protocol": "http",
"proxy_protocol": "none",
"ssl_cert": "<REDACTED>",
"ssl_commonname": "www.example.com",
"ssl_fingerprint": "00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13",
"ssl_key": "<REDACTED>",
"stickiness": "http_cookie"
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
algorithm | string Enum:
roundrobin
leastconn
source
Default:
roundrobin What algorithm this NodeBalancer should use for routing traffic to backends. | ||||
check | string Enum:
none
connection
http
http_body
Default:
none The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down.
| ||||
check_attempts | integer
1..30Default:
3 How many times to attempt a check before considering a backend to be down. | ||||
check_body | string This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. | ||||
check_interval | integer Default:
31 How often, in seconds, to check that backends are up and serving requests. Must be greater than | ||||
check_passive | boolean Default:
true If true, any response from this backend with a | ||||
check_path | string The URL path to check on each backend. If the backend does not respond to this request it is considered to be down. | ||||
check_timeout | integer
1..30Default:
30 How long, in seconds, to wait for a check attempt before considering it failed. Must be less than | ||||
cipher_suite | string Enum:
recommended
legacy
Default:
recommended What ciphers to use for SSL connections served by this NodeBalancer.
| ||||
id | integer This config’s unique ID | ||||
nodebalancer_id | integer The ID for the NodeBalancer this config belongs to. | ||||
nodes_status | object A structure containing information about the health of the backends for this port. This information is updated periodically as checks are performed against backends.
| ||||
port | integer
1..65535Default:
80 The port this Config is for. These values must be unique across configs on a single NodeBalancer (you can’t have two configs for port 80, for example). While some ports imply some protocols, no enforcement is done and you may configure your NodeBalancer however is useful to you. For example, while port 443 is generally used for HTTPS, you do not need SSL configured to have a NodeBalancer listening on port 443. | ||||
protocol | string Enum:
http
https
tcp
Default:
http The protocol this port is configured to serve.
Review our guide on Available Protocols for information on protocol features. | ||||
proxy_protocol | string Enum:
none
v1
v2
Default:
none ProxyProtocol is a TCP extension that sends initial TCP connection information such as source/destination IPs and ports to backend devices. This information would be lost otherwise. Backend devices must be configured to work with ProxyProtocol if enabled.
| ||||
ssl_cert Nullable | string<ssl-cert> The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL certificate and Certificate Authority chain) that should be served on this NodeBalancerConfig’s port. Line breaks must be represented as “\n” in the string for requests (but not when using the Linode CLI). Diffie-Hellman Parameters can be included in this value to enable forward secrecy. The contents of this field will not be shown in any responses that display
the NodeBalancerConfig. Instead, The read-only | ||||
ssl_commonname | string The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. | ||||
ssl_fingerprint | string The read-only SHA1-encoded fingerprint automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. | ||||
ssl_key Nullable | string<ssl-key> The PEM-formatted private key for the SSL certificate set in the Line breaks must be represented as “\n” in the string for requests (but not when using the Linode CLI). The contents of this field will not be shown in any responses that display
the NodeBalancerConfig. Instead, The read-only | ||||
stickiness | string Enum:
none
table
http_cookie
Default:
none Controls how session stickiness is handled on this port.
|
errors | array
of objects
|
Nodes List
Returns a paginated list of NodeBalancer nodes associated with this Config. These are the backends that will be sent traffic for this port.
Authorizations
personalAccessToken | |
oauth | nodebalancers:read_only |
Path Parameters
nodeBalancerId | integer RequiredThe ID of the NodeBalancer to access. |
configId | integer RequiredThe ID of the NodeBalancer config to access. |
Query Parameters
page |
The page of a collection to return. |
page_size |
The number of items to return per page. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/nodebalancers/12345/configs/4567/nodes
linode-cli nodebalancers nodes-list 12345 4567
Response Samples
{
"data": [
{
"address": "192.168.210.120:80",
"config_id": 4567,
"id": 54321,
"label": "node54321",
"mode": "accept",
"nodebalancer_id": 12345,
"status": "UP",
"weight": 50
}
],
"page": 1,
"pages": 1,
"results": 1
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
data | array
of objects
| ||||||||||||||||
page | integer The current page. | ||||||||||||||||
pages | integer The total number of pages. | ||||||||||||||||
results | integer The total number of results. |
errors | array
of objects
|
Node Create
Creates a NodeBalancer Node, a backend that can accept traffic for this NodeBalancer Config. Nodes are routed requests on the configured port based on their status.
Authorizations
personalAccessToken | |
oauth | nodebalancers:read_write |
Path Parameters
nodeBalancerId | integer RequiredThe ID of the NodeBalancer to access. |
configId | integer RequiredThe ID of the NodeBalancer config to access. |
Request Samples
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"address": "192.168.210.120:80",
"label": "node54321",
"weight": 50,
"mode": "accept"
}' \
https://api.linode.com/v4/nodebalancers/12345/configs/4567/nodes
linode-cli nodebalancers node-create \
12345 4567 \
--address 192.168.210.120:80 \
--label node54321 \
--weight 50 \
--mode accept
Request Body Schema
address Required | string<ip> The private IP Address where this backend can be reached. This must be a private IP address. |
label Required | string
3..32
charactersThe label for this node. This is for display purposes only. |
mode | string Enum:
accept
reject
drain
backup The mode this NodeBalancer should use when sending traffic to this backend.
|
weight | integer
1..255Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. |
Response Samples
{
"address": "192.168.210.120:80",
"config_id": 4567,
"id": 54321,
"label": "node54321",
"mode": "accept",
"nodebalancer_id": 12345,
"status": "UP",
"weight": 50
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
address | string<ip> The private IP Address where this backend can be reached. This must be a private IP address. |
config_id | integer The NodeBalancer Config ID that this Node belongs to. |
id | integer This node’s unique ID. |
label | string
3..32
charactersThe label for this node. This is for display purposes only. |
mode | string Enum:
accept
reject
drain
backup The mode this NodeBalancer should use when sending traffic to this backend.
|
nodebalancer_id | integer The NodeBalancer ID that this Node belongs to. |
status | string Enum:
unknown
UP
DOWN The current status of this node, based on the configured checks of its NodeBalancer Config. |
weight | integer
1..255Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. |
errors | array
of objects
|
Node Delete
Deletes a Node from this Config. This backend will no longer receive traffic for the configured port of this NodeBalancer.
This does not change or remove the Linode whose address was used in the creation of this Node.
Authorizations
personalAccessToken | |
oauth | nodebalancers:read_write |
Path Parameters
nodeBalancerId | integer RequiredThe ID of the NodeBalancer to access. |
configId | integer RequiredThe ID of the Config to access |
nodeId | integer RequiredThe ID of the Node to access |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
-X DELETE \
https://api.linode.com/v4/nodebalancers/12345/configs/4567/nodes/54321
linode-cli nodebalancers node-delete \
12345 4567 54321
Response Samples
{}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
errors | array
of objects
|
Node View
Returns information about a single Node, a backend for this NodeBalancer’s configured port.
Authorizations
personalAccessToken | |
oauth | nodebalancers:read_write |
Path Parameters
nodeBalancerId | integer RequiredThe ID of the NodeBalancer to access. |
configId | integer RequiredThe ID of the Config to access |
nodeId | integer RequiredThe ID of the Node to access |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/nodebalancers/12345/configs/4567/nodes/54321
linode-cli nodebalancers node-view 12345 4567 54321
Response Samples
{
"address": "192.168.210.120:80",
"config_id": 4567,
"id": 54321,
"label": "node54321",
"mode": "accept",
"nodebalancer_id": 12345,
"status": "UP",
"weight": 50
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
address | string<ip> The private IP Address where this backend can be reached. This must be a private IP address. |
config_id | integer The NodeBalancer Config ID that this Node belongs to. |
id | integer This node’s unique ID. |
label | string
3..32
charactersThe label for this node. This is for display purposes only. |
mode | string Enum:
accept
reject
drain
backup The mode this NodeBalancer should use when sending traffic to this backend.
|
nodebalancer_id | integer The NodeBalancer ID that this Node belongs to. |
status | string Enum:
unknown
UP
DOWN The current status of this node, based on the configured checks of its NodeBalancer Config. |
weight | integer
1..255Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. |
errors | array
of objects
|
Node Update
Updates information about a Node, a backend for this NodeBalancer’s configured port.
Authorizations
personalAccessToken | |
oauth | nodebalancers:read_write |
Path Parameters
nodeBalancerId | integer RequiredThe ID of the NodeBalancer to access. |
configId | integer RequiredThe ID of the Config to access |
nodeId | integer RequiredThe ID of the Node to access |
Request Samples
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT -d '{
"address": "192.168.210.120:80",
"label": "node54321",
"weight": 50,
"mode": "accept"
}' \
https://api.linode.com/v4/nodebalancers/12345/configs/4567/nodes/54321
linode-cli nodebalancers node-update \
12345 4567 54321 \
--address 192.168.210.120:80 \
--label node54321 \
--weight 50 \
--mode accept
Request Body Schema
address | string<ip> The private IP Address where this backend can be reached. This must be a private IP address. |
label | string
3..32
charactersThe label for this node. This is for display purposes only. |
mode | string Enum:
accept
reject
drain
backup The mode this NodeBalancer should use when sending traffic to this backend.
|
weight | integer
1..255Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. |
Response Samples
{
"address": "192.168.210.120:80",
"config_id": 4567,
"id": 54321,
"label": "node54321",
"mode": "accept",
"nodebalancer_id": 12345,
"status": "UP",
"weight": 50
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
address | string<ip> The private IP Address where this backend can be reached. This must be a private IP address. |
config_id | integer The NodeBalancer Config ID that this Node belongs to. |
id | integer This node’s unique ID. |
label | string
3..32
charactersThe label for this node. This is for display purposes only. |
mode | string Enum:
accept
reject
drain
backup The mode this NodeBalancer should use when sending traffic to this backend.
|
nodebalancer_id | integer The NodeBalancer ID that this Node belongs to. |
status | string Enum:
unknown
UP
DOWN The current status of this node, based on the configured checks of its NodeBalancer Config. |
weight | integer
1..255Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. |
errors | array
of objects
|
Config Rebuild
Rebuilds a NodeBalancer Config and its Nodes that you have permission to modify.
Use this command to update a NodeBalancer’s Config and Nodes with a single request.
Authorizations
personalAccessToken | |
oauth | nodebalancers:read_write |
Path Parameters
nodeBalancerId | integer RequiredThe ID of the NodeBalancer to access. |
configId | integer RequiredThe ID of the Config to access. |
Request Samples
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"port": 1234,
"protocol": "https",
"algorithm": "roundrobin",
"stickiness": "http_cookie",
"check": "http_body",
"check_interval": 90,
"check_timeout": 10,
"check_attempts": 3,
"check_path": "/test",
"check_body": "it works",
"check_passive": true,
"proxy_protocol": "none",
"cipher_suite": "recommended",
"ssl_cert": "-----BEGIN CERTIFICATE-----\nCERTIFICATE_INFORMATION\n-----END CERTIFICATE-----",
"ssl_key": "-----BEGIN PRIVATE KEY-----\nPRIVATE_KEY_INFORMATION\n-----END PRIVATE KEY-----",
"nodes": [
{
"id": 54321,
"address": "192.168.210.120:80",
"label": "node1",
"weight": 50,
"mode": "accept"
},
{
"address": "192.168.210.122:81",
"label": "node2",
"weight": 50,
"mode": "accept"
}
]
}' \
https://api.linode.com/v4/nodebalancers/12345/configs/4567/rebuild
linode-cli nodebalancers config-rebuild \
12345 4567 \
--port 443 \
--protocol https \
--algorithm roundrobin \
--stickiness http_cookie \
--check http_body \
--check_interval 90 \
--check_timeout 10 \
--check_attempts 3 \
--check_path "/test" \
--check_body "it works" \
--check_passive true \
--proxy_protocol "none" \
--ssl_cert "-----BEGIN CERTIFICATE-----
CERTIFICATE_INFORMATION
-----END CERTIFICATE-----" \
--ssl_key "-----BEGIN PRIVATE KEY-----
PRIVATE_KEY_INFORMATION
-----END PRIVATE KEY-----" \
--cipher_suite recommended \
--nodes '{"address":"192.168.210.120:80","label":"node1","weight":50,"mode":"accept"}' \
--nodes '{"address":"192.168.210.122:80","label":"node2","weight":50,"mode":"accept"}'
Request Body Schema
algorithm | string Enum:
roundrobin
leastconn
source
Default:
roundrobin What algorithm this NodeBalancer should use for routing traffic to backends. | ||||||||||
check | string Enum:
none
connection
http
http_body
Default:
none The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down.
| ||||||||||
check_attempts | integer
1..30Default:
3 How many times to attempt a check before considering a backend to be down. | ||||||||||
check_body | string This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. | ||||||||||
check_interval | integer Default:
31 How often, in seconds, to check that backends are up and serving requests. Must be greater than | ||||||||||
check_passive | boolean Default:
true If true, any response from this backend with a | ||||||||||
check_path | string The URL path to check on each backend. If the backend does not respond to this request it is considered to be down. | ||||||||||
check_timeout | integer
1..30Default:
30 How long, in seconds, to wait for a check attempt before considering it failed. Must be less than | ||||||||||
cipher_suite | string Enum:
recommended
legacy
Default:
recommended What ciphers to use for SSL connections served by this NodeBalancer.
| ||||||||||
nodes Required | array
of objects The NodeBalancer Node(s) that serve this Config. Some considerations for Nodes when rebuilding a config:
| ||||||||||
port | integer
1..65535Default:
80 The port this Config is for. These values must be unique across configs on a single NodeBalancer (you can’t have two configs for port 80, for example). While some ports imply some protocols, no enforcement is done and you may configure your NodeBalancer however is useful to you. For example, while port 443 is generally used for HTTPS, you do not need SSL configured to have a NodeBalancer listening on port 443. | ||||||||||
protocol | string Enum:
http
https
tcp
Default:
http The protocol this port is configured to serve.
Review our guide on Available Protocols for information on protocol features. | ||||||||||
proxy_protocol | string Enum:
none
v1
v2
Default:
none ProxyProtocol is a TCP extension that sends initial TCP connection information such as source/destination IPs and ports to backend devices. This information would be lost otherwise. Backend devices must be configured to work with ProxyProtocol if enabled.
| ||||||||||
ssl_cert Nullable | string<ssl-cert> The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL certificate and Certificate Authority chain) that should be served on this NodeBalancerConfig’s port. Line breaks must be represented as “\n” in the string for requests (but not when using the Linode CLI). Diffie-Hellman Parameters can be included in this value to enable forward secrecy. The contents of this field will not be shown in any responses that display
the NodeBalancerConfig. Instead, The read-only | ||||||||||
ssl_key Nullable | string<ssl-key> The PEM-formatted private key for the SSL certificate set in the Line breaks must be represented as “\n” in the string for requests (but not when using the Linode CLI). The contents of this field will not be shown in any responses that display
the NodeBalancerConfig. Instead, The read-only | ||||||||||
stickiness | string Enum:
none
table
http_cookie
Default:
none Controls how session stickiness is handled on this port.
|
Response Samples
{
"algorithm": "roundrobin",
"check": "http_body",
"check_attempts": 3,
"check_body": "it works",
"check_interval": 90,
"check_passive": true,
"check_path": "/test",
"check_timeout": 10,
"cipher_suite": "recommended",
"id": 4567,
"nodebalancer_id": 12345,
"nodes_status": {
"down": 0,
"up": 4
},
"port": 80,
"protocol": "http",
"proxy_protocol": "none",
"ssl_cert": "<REDACTED>",
"ssl_commonname": "www.example.com",
"ssl_fingerprint": "00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13",
"ssl_key": "<REDACTED>",
"stickiness": "http_cookie"
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
algorithm | string Enum:
roundrobin
leastconn
source
Default:
roundrobin What algorithm this NodeBalancer should use for routing traffic to backends. | ||||
check | string Enum:
none
connection
http
http_body
Default:
none The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down.
| ||||
check_attempts | integer
1..30Default:
3 How many times to attempt a check before considering a backend to be down. | ||||
check_body | string This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. | ||||
check_interval | integer Default:
31 How often, in seconds, to check that backends are up and serving requests. Must be greater than | ||||
check_passive | boolean Default:
true If true, any response from this backend with a | ||||
check_path | string The URL path to check on each backend. If the backend does not respond to this request it is considered to be down. | ||||
check_timeout | integer
1..30Default:
30 How long, in seconds, to wait for a check attempt before considering it failed. Must be less than | ||||
cipher_suite | string Enum:
recommended
legacy
Default:
recommended What ciphers to use for SSL connections served by this NodeBalancer.
| ||||
id | integer This config’s unique ID | ||||
nodebalancer_id | integer The ID for the NodeBalancer this config belongs to. | ||||
nodes_status | object A structure containing information about the health of the backends for this port. This information is updated periodically as checks are performed against backends.
| ||||
port | integer
1..65535Default:
80 The port this Config is for. These values must be unique across configs on a single NodeBalancer (you can’t have two configs for port 80, for example). While some ports imply some protocols, no enforcement is done and you may configure your NodeBalancer however is useful to you. For example, while port 443 is generally used for HTTPS, you do not need SSL configured to have a NodeBalancer listening on port 443. | ||||
protocol | string Enum:
http
https
tcp
Default:
http The protocol this port is configured to serve.
Review our guide on Available Protocols for information on protocol features. | ||||
proxy_protocol | string Enum:
none
v1
v2
Default:
none ProxyProtocol is a TCP extension that sends initial TCP connection information such as source/destination IPs and ports to backend devices. This information would be lost otherwise. Backend devices must be configured to work with ProxyProtocol if enabled.
| ||||
ssl_cert Nullable | string<ssl-cert> The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL certificate and Certificate Authority chain) that should be served on this NodeBalancerConfig’s port. Line breaks must be represented as “\n” in the string for requests (but not when using the Linode CLI). Diffie-Hellman Parameters can be included in this value to enable forward secrecy. The contents of this field will not be shown in any responses that display
the NodeBalancerConfig. Instead, The read-only | ||||
ssl_commonname | string The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. | ||||
ssl_fingerprint | string The read-only SHA1-encoded fingerprint automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. | ||||
ssl_key Nullable | string<ssl-key> The PEM-formatted private key for the SSL certificate set in the Line breaks must be represented as “\n” in the string for requests (but not when using the Linode CLI). The contents of this field will not be shown in any responses that display
the NodeBalancerConfig. Instead, The read-only | ||||
stickiness | string Enum:
none
table
http_cookie
Default:
none Controls how session stickiness is handled on this port.
|
errors | array
of objects
|
Firewalls List
View information for Firewalls assigned to this NodeBalancer.
Authorizations
personalAccessToken | |
oauth | nodebalancers:read_only |
Path Parameters
nodeBalancerId | integer RequiredThe ID of the NodeBalancer to access. |
Request Samples
curl https://api.linode.com/v4/nodebalancers/$nodeBalancerId/firewalls \
-H "Authorization: Bearer $TOKEN"
linode-cli nodebalancers firewalls $nodeBalancerId
Response Samples
{
"data": [
{
"created": "2018-01-01T00:01:01",
"id": 123,
"label": "firewall123",
"rules": {
"inbound": [
{
"action": "ACCEPT",
"addresses": {
"ipv4": [
"192.0.2.0/24",
"198.51.100.2/32"
],
"ipv6": [
"2001:DB8::/128"
]
},
"description": "An example firewall rule description.",
"label": "firewallrule123",
"ports": "22-24, 80, 443",
"protocol": "TCP"
}
],
"inbound_policy": "DROP",
"outbound": [
{
"action": "ACCEPT",
"addresses": {
"ipv4": [
"192.0.2.0/24",
"198.51.100.2/32"
],
"ipv6": [
"2001:DB8::/128"
]
},
"description": "An example firewall rule description.",
"label": "firewallrule123",
"ports": "22-24, 80, 443",
"protocol": "TCP"
}
],
"outbound_policy": "DROP"
},
"status": "enabled",
"tags": [
"example tag",
"another example"
],
"updated": "2018-01-02T00:01:01"
}
],
"page": 1,
"pages": 1,
"results": 1
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
data | array
of objects
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
page | integer The current page. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
pages | integer The total number of pages. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
results | integer The total number of results. |
errors | array
of objects
|
NodeBalancer Statistics View
Returns detailed statistics about the requested NodeBalancer.
Authorizations
personalAccessToken | |
oauth | nodebalancers:read_only |
Path Parameters
nodeBalancerId | integer RequiredThe ID of the NodeBalancer to access. |
Response Samples
{
"data": {
"connections": [
null
],
"traffic": {
"in": [
null
],
"out": [
null
]
}
},
"title": "linode.com - balancer12345 (12345) - day (5 min avg)"
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
data | object The data returned about this NodeBalancers.
| ||||||||
title | string The title for the statistics generated in this response. |
errors | array
of objects
|