
nginx ingress manifest / réessayer les connections backend s’il y a erreur / ne pas afficher 502/503 errors aux visiteurs
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
meta.helm.sh/release-name: name
meta.helm.sh/release-namespace: namespace
nginx.ingress.kubernetes.io/configuration-snippet: |
#avoid 5xx errors displayed to user / retry backend servers
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504 http_429 non_idempotent;
nginx.ingress.kubernetes.io/proxy-body-size: 256m
labels:
app.kubernetes.io/managed-by: Helm
name: app-ing
namespace: namespace
spec:
rules:
- host: monsite.com
http:
paths:
- backend:
service:
name: monsite
port:
number: 80
path: /
pathType: Prefix
Cette directive de configuration Nginx détermine comment le serveur proxy doit traiter les erreurs renvoyées par les serveurs de destination lors de la transmission de la requête du client.
Les erreurs de type « timeout », « invalid_header », « http_500 », « http_502 », « http_503 », « http_504 », « http_429 » sont considérées comme des erreurs temporaires et ne sont pas renvoyées directement au client. Au lieu de cela, Nginx essaie de renvoyer la requête à un autre serveur de destination.
Les erreurs « non_idempotent » sont des erreurs permanentes et sont renvoyées directement au client. Les requêtes « non-idempotentes » sont celles qui ne peuvent pas être répétées plusieurs fois sans provoquer de résultats indésirables ou différents.
En utilisant cette directive, on peut configurer Nginx pour qu’il gère les erreurs de manière à minimiser les temps d’arrêt et les erreurs pour les clients qui accèdent aux serveurs proxy.