envoi d'une réponse statique
En plus du routage et de la redirection, vous pouvez servir des réponses statiques avec Envoy.
Dans ce cas, je veux servir une réponse interdite (403).
route_config :
virtual_hosts :
- nom : picockpit
domaines : ["picockpit.local:443", "picockpit.local"]
routes :
- match : { préfixe : "/demo" }
réponse directe :
statut : 403
corps :
inline_string : "Interdit".
- match : {préfixe : "/"}
route : {cluster : target_picockpit}
Il peut également servir des fichiers du système de fichiers local comme réponse.
Réf :
- https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/core/base.proto#envoy-api-msg-core-datasource
- https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/route/route.proto#envoy-api-msg-route-directresponseaction
- https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/route/route.proto#envoy-api-msg-route-route
PS. Si vous obtenez l'erreur
erreur d'initialisation de la configuration '/etc/envoy/envoy.yaml' : Unable to parse JSON as proto (INVALID_ARGUMENT :(route_config.virtual_hosts[0].routes[2].direct_response.body) : invalid value "Forbidden." for type.googleapis.com/envoy.api.v2.core.DataSource), vous essayez de définir la chaîne directement sur le corps - vous devez la définir comme une sous-valeur de inline_string de corps. voir mon exemple ci-dessus.