Configuration: Static

To start Envoy with static configuration, you will need to specify listeners and clusters as static_resources.

You can also add an admin section if you wish to monitor Envoy or retrieve stats.

The following sections walk through the static configuration provided in the demo configuration file used as the default in the Envoy Docker container.

static_resources

The static_resources contain everything that is configured statically when Envoy starts, as opposed to dynamically at runtime.

1static_resources:
2
3  listeners:

listeners

The example configures a listener on port 10000.

All paths are matched and routed to the service_envoyproxy_io cluster.

 1static_resources:
 2
 3  listeners:
 4  - name: listener_0
 5    address:
 6      socket_address:
 7        address: 0.0.0.0
 8        port_value: 10000
 9    filter_chains:
10    - filters:
11      - name: envoy.filters.network.http_connection_manager
12        typed_config:
13          "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
14          stat_prefix: ingress_http
15          access_log:
16          - name: envoy.access_loggers.stdout
17            typed_config:
18              "@type": type.googleapis.com/envoy.extensions.access_loggers.stream.v3.StdoutAccessLog
19          http_filters:
20          - name: envoy.filters.http.router
21            typed_config:
22              "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
23          route_config:
24            name: local_route
25            virtual_hosts:
26            - name: local_service
27              domains: ["*"]
28              routes:
29              - match:
30                  prefix: "/"
31                route:
32                  host_rewrite_literal: www.envoyproxy.io
33                  cluster: service_envoyproxy_io
34
35  clusters:
36  - name: service_envoyproxy_io

clusters

The service_envoyproxy_io cluster proxies over TLS to https://www.envoyproxy.io.

31                route:
32                  host_rewrite_literal: www.envoyproxy.io
33                  cluster: service_envoyproxy_io
34
35  clusters:
36  - name: service_envoyproxy_io
37    type: LOGICAL_DNS
38    # Comment out the following line to test on v6 networks
39    dns_lookup_family: V4_ONLY
40    load_assignment:
41      cluster_name: service_envoyproxy_io
42      endpoints:
43      - lb_endpoints:
44        - endpoint:
45            address:
46              socket_address:
47                address: www.envoyproxy.io
48                port_value: 443
49    transport_socket:
50      name: envoy.transport_sockets.tls
51      typed_config:
52        "@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext
53        sni: www.envoyproxy.io