HTTP Connection Manager
The HTTP Connection Manager lets you refine the behavior of Envoy for each listener that you manage with Gloo Gateway.
Websocket
You can configure the Http Connection Manager on a listener to enable or disable websocket upgrades. See the Websocket documentation for more.
Tracing
One of the fields in the HTTP Connection Manager Plugin is tracing
. This specifies the listener-specific tracing configuration.
For documentation on configuring and using tracing with Gloo Gateway, please see the tracing setup docs.
A tracing upstream or cluster can be specified using collectorUpstreamRef
or clusterName
respectively. The tracing configuration fields of the Gateway Custom Resource (CR) are highlighted here:
apiVersion: gateway.solo.io/v1
kind: Gateway
metadata: # collapsed for brevity
spec:
bindAddress: '::'
bindPort: 8080
httpGateway:
options:
httpConnectionManagerSettings:
tracing:
verbose: true
requestHeadersForTags:
- path
- origin
zipkinConfig:
collectorEndpoint: /api/v2/spans
collectorEndpointVersion: HTTP_JSON
collectorUpstreamRef:
name: zipkin
namespace: default
status: # collapsed for brevity
apiVersion: gateway.solo.io/v1
kind: Gateway
metadata: # collapsed for brevity
spec:
bindAddress: '::'
bindPort: 8080
httpGateway:
options:
httpConnectionManagerSettings:
tracing:
verbose: true
requestHeadersForTags:
- path
- origin
zipkinConfig:
collectorEndpoint: /api/v2/spans
collectorEndpointVersion: HTTP_JSON
clusterName: zipkin
status: # collapsed for brevity
If you provide an invalid clusterName, the error will not show up in Gloo.
However, if you are using Gloo Gateway Enterprise you can use our observability features to track the glooe.solo.io/xds/outofsync
statistic
Advanced listener configuration
Gloo Gateway exposes Envoy’s powerful configuration capabilities with the HTTP Connection Manager. The details of these fields can be found here and here
Below, see a reference configuration specification to demonstrate the structure of the expected YAML.
apiVersion: gateway.solo.io/v1
kind: Gateway
metadata: # collapsed for brevity
spec:
bindAddress: '::'
bindPort: 8080
httpGateway:
options:
httpConnectionManagerSettings:
skipXffAppend: false
via: reference-string
xffNumTrustedHops: 1234
useRemoteAddress: false
generateRequestId: false
proxy100Continue: false
streamIdleTimeout: 1m2s
idleTimeout: 1m2s
maxRequestHeadersKb: 1234
requestTimeout: 1m2s
drainTimeout: 1m2s
delayedCloseTimeout: 1m2s
serverName: reference-string
acceptHttp10: false
defaultHostForHttp10: reference-string
status: # collapsed for brevity
We recommend that you consult the linked Envoy docs to gain a better understanding of the httpGateway
options and how you might apply them in your environment.
Next Steps
Two potential settings that might be of interest are the options governing the configuration of gRPC Web clients and Websockets. Please check out the linked guides for more information on how to configure each of these options.