Skip to main content
Version: 4.0.0

setDefaultDynamicBackendConfig()

The setDefaultDynamicBackendConfig() allows setting backend configuration defaults that should apply to any newly created dynamic backends via the new Backend() constructor.

Parameters​

  • defaultDynamicBackendConfig

    • : An Object which contains the generic configuration options to apply to newly created Backends.
      • connectTimeout : number optional
        • Maximum duration in milliseconds to wait for a connection to this backend to be established.
        • If exceeded, the connection is aborted and a 503 response will be presented instead.
        • Throws a RangeError if the value is negative or greater than or equal to 2^32
      • firstByteTimeout : number optional
        • Maximum duration in milliseconds to wait for the server response to begin after a TCP connection is established and the request has been sent.
        • If exceeded, the connection is aborted and a 503 response will be presented instead.
        • Throws a RangeError if the value is negative or greater than or equal to 2^32
      • betweenBytesTimeout : number optional
        • Maximum duration in milliseconds that Fastly will wait while receiving no data on a download from a backend.
        • If exceeded, the response received so far will be considered complete and the fetch will end.
        • Throws a RangeError if the value is negative or greater than or equal to 2^32
      • useSSL : boolean optional
        • Whether or not to require TLS for connections to this backend.
      • dontPool : boolean optional
        • Determine whether or not connections to the same backend should be pooled across different sessions.
        • Fastly considers two backends “the same” if they're registered with the same name and the exact same settings.
        • In those cases, when pooling is enabled, if Session 1 opens a connection to this backend it will be left open, and can be re-used by Session 2.
        • This can help improve backend latency, by removing the need for the initial network / TLS handshake(s).
        • By default, pooling is enabled for dynamic backends.
      • tlsMinVersion : 1 | 1.1 | 1.2 | 1.3 optional
        • Minimum allowed TLS version on SSL connections to this backend.
        • If the backend server is not able to negotiate a connection meeting this constraint, a 503 response will be presented instead.
        • Throws a RangeError if the value is not 1, 1.1, 1.2, or 1.3
      • tlsMaxVersion : 1 | 1.1 | 1.2 | 1.3 optional
        • Maximum allowed TLS version on SSL connections to this backend.
        • If the backend server is not able to negotiate a connection meeting this constraint, a 503 response will be presented instead.
        • Throws a RangeError if the value is not 1, 1.1, 1.2, or 1.3
      • certificateHostname : string optional
        • Define the hostname that the server certificate should declare.
        • Throws a TypeError if the value is an empty string.
      • caCertificate : string optional
        • The CA certificate to use when checking the validity of the backend.
        • Throws a TypeError if the value is an empty string.
      • ciphers : string optional
        • List of OpenSSL ciphers to support for connections to this origin.
        • If the backend server is not able to negotiate a connection meeting this constraint, a 503 response will be presented instead.
        • List of ciphers supported by Fastly.
        • Throws a TypeError if the value is an empty string.
      • clientCertificate : object optional
        • The client certificate to provide for the TLS handshake
        • certificate : string
          • The PEM certificate string.
        • key : SecretStoreEntry
      • httpKeepalive : number optional
        • Enable HTTP keepalive, setting the timout in milliseconds.
      • tcpKeepalive : boolean | object optional
        • Enable TCP keepalive. When an object, optionally setting the keepalive configuration options.
        • timeSecs : number optional
          • Configure how long to wait after the last sent data over the TCP connection before starting to send TCP keepalive probes.
        • intervalSecs : number optional
          • Configure how long to wait between each TCP keepalive probe sent to the backend to determine if it is still active.
        • probes : number optional
          • Number of probes to send to the backend before it is considered dead.

Syntax​

setDefaultDynamicBackendConfig(defaultConfig);

Return value​

None.

Examples​

In this example an explicit Dynamic Backend is created and supplied to the fetch request, with timeouts and TLS options provided from the default backend configuration options.

/// <reference types="@fastly/js-compute" />
import { allowDynamicBackends } from 'fastly:experimental';
import { Backend } from 'fastly:backend';
allowDynamicBackends(true);
setDefaultDynamicBackendConfig({
connectTimeout: 1000,
firstByteTimeout: 15_000,
betweenBytesTimeout: 10_000,
useSSL: true,
sslMinVersion: 1.3,
sslMaxVersion: 1.3,
});
async function app() {
// For any request, return the fastly homepage -- without defining a backend!
const backend = new Backend({
name: 'fastly',
target: 'fastly.com',
hostOverride: 'www.fastly.com',
});
return fetch('https://www.fastly.com/', {
backend, // Here we are configuring this request to use the backend from above.
});
}
addEventListener('fetch', (event) => event.respondWith(app(event)));