From 5d23cfce652e66c3cc335506fbeae761a2c1632e Mon Sep 17 00:00:00 2001 From: Jeremy Lecour Date: Tue, 17 Jan 2023 09:54:42 +0100 Subject: [PATCH] Infos sur le protocol PROXY --- HowtoHaproxy.md | 24 ++++++++++++++++++++++++ HowtoNginx.md | 31 +++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) diff --git a/HowtoHaproxy.md b/HowtoHaproxy.md index 9497c87d..a7053830 100644 --- a/HowtoHaproxy.md +++ b/HowtoHaproxy.md @@ -365,6 +365,30 @@ Le premier bloc contient deux lignes dont la première définit une règle « tr Le second bloc contient quant à lui deux lignes dont la première définit une règle « track-sc1 » qui se base sur la table du backend « per_ip_and_url_rates » en omettant toute les requêtes vers certains types de fichiers (CSS, JS…). La seconde ligne indique ensuite de renvoyer un status 429 si le nombre des requêtes HTTP/sec vers une URL unique depuis une même IP selon les données provenant de « track-sc1 » est supérieur à 10 (donc 10 requêtes depuis une même IP et vers la même URL sur les 10 dernières secondes). +### Protocol PROXY + +L'utilisation du protocol PROXY permet de faciliter la communication et la traçabilité lorsque des proxy sont impliqués. + +Voir la [présentation générale du protocol](https://www.haproxy.com/blog/use-the-proxy-protocol-to-preserve-a-clients-ip-address/). + +#### HAProxy en amont + +Pour envoyer du trafic à un serveur de backend en utilisant le protocol PROXY, il suffit d'ajouter le mot clé `send-proxy-v2` dans la définition du serveur : + +~~~ +backend be_web + server web01 192.0.2.1:80 […] send-proxy-v2 +~~~ + +#### HAProxy en aval + +Pour recevoir du trafic en utilisant le protocol PROXY, il suffit d'ajouter le mot clé `accept-proxy` dans la définition du binding : + +~~~ +frontend foo + bind […] accept-proxy +~~~ + ## Check HTTP Cela consiste à utiliser un check http pour déterminer l'état du serveur. diff --git a/HowtoNginx.md b/HowtoNginx.md index 7c788ed9..e7034563 100644 --- a/HowtoNginx.md +++ b/HowtoNginx.md @@ -757,6 +757,37 @@ Lecture d'un flux : $ ffplay -probesize 32 -sync ext "rtmp://127.0.0.1/live/foo" ~~~ +## Protocol PROXY + +L'utilisation du protocol PROXY permet de faciliter la communication et la traçabilité lorsque des proxy sont impliqués. + +À consulter : + +* [présentation générale du protocol](https://www.haproxy.com/blog/use-the-proxy-protocol-to-preserve-a-clients-ip-address/) +* [doc complète](https://docs.nginx.com/nginx/admin-guide/load-balancer/using-proxy-protocol/) sur la mise en œuvre pour Nginx. + +### Nginx en aval + +Il faut écouter en acceptant le protocol PROXY, et indiquer la/les IP des proxy de confiance : + +~~~ +http { + #... + server { + listen 80 proxy_protocol; + listen 443 ssl proxy_protocol; + #... + set_real_ip_from 192.168.1.0/32; + real_ip_header proxy_protocol; + } +} +~~~ + +### Nginx en amont + +_TODO: aire une synthèse de la doc officielle_ + +### ## FAQ