Settings the HTTP client uses for calls to a backend: socket timeouts, an upstream proxy, credentials, TLS and retry behavior. Every part is optional and falls back to its defaults when omitted. Configure it once globally, or on a single plugin that calls a backend.
Rewrites the Host header to the address of the backend. Set to false to forward the Host header the client sent, e.g. when the backend serves virtual hosts under that name.
false
useExperimentalHttp2
false
false
Negotiates HTTP/2 over TLS when the backend offers it and falls back to HTTP/1.1 otherwise. Experimental.
Retries a request to the backend when the connection fails or the server answers with a status code that is worth another attempt. The initial call is followed by a configurable number of further attempts.
Configures a TLS context: the identity (key and certificate) presented to the peer, the certificates trusted from it, and handshake parameters such as protocol, ciphers, and client-certificate policy. Attach it to a serviceProxy/api to terminate inbound TLS, or to a target to make an outbound connection over TLS; most attributes and child elements apply to both directions, but a few - such as clientAuth and useAsDefault - only take effect on an inbound context. See tutorials/ssl-tls/10-TLS-Termination.yaml for inbound termination and tutorials/ssl-tls/20-Central-SSL-Config.yaml for sharing one ssl across several APIs via $ref.