Route matching

When Envoy matches a route, it uses the following procedure:

  1. The HTTP request’s host or :authority header is matched to a virtual host.

  2. One of:

    • Each route entry in the virtual host is checked, in order. If there is a match, the route is used and no further route checks are made.

    • The matcher entry in the virtual host is used to match a route. If there are many routes this will typically be more efficient than the linear search of route.

  3. Independently, each virtual cluster in the virtual host is checked, in order. If there is a match, the virtual cluster is used and no further virtual cluster checks are made.