#1 Le 25/02/2021, à 15:32
- guedz45
[RESOLU] Reverse-proxy avec personnalisation de certains codes erreurs
Bonjour,
je m'essaie au reverse-proxy avec apache avec un backend Gunicorn.
Mon objectif est de traiter certains codes erreur HTTP depuis apache avec des pages personnalisées et laisser les autres codes erreurs à Gunicorn.
Voici mon fichier de configuration : /etc/apache2/sites-available/test.conf
<VirtualHost *:443>
ServerName demo.domain.lan
ProxyPass /error/ !
ProxyPreserveHost On
ProxyRequests Off
ProxyPass / https://192.168.1.10:8000/
ProxyPassReverse / https://192.168.1.10:8000/
ProxyErrorOverride On 404 500 503 504
ErrorDocument 404 /error/custom_404.html
ErrorDocument 500 /error/custom_500.html
ErrorDocument 503 /error/custom_503.html
ErrorDocument 504 /error/custom_504.html
SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
SSLEngine on
SSLProxyEngine on
SSLCertificateFile /etc/apache2/ssl/demo.domain.lan.crt
SSLCertificateKeyFile /etc/apache2/ssl/demo.domain.lan.key
SSLCertificateChainFile /etc/apache2/ssl/demo.domain.lan_ca.crt
<Proxy *>
Include /etc/apache2/require_internal.conf
</Proxy>
ErrorLog ${APACHE_LOG_DIR}/demo.domain.lan-ssl-error.log
CustomLog ${APACHE_LOG_DIR}/demo.domain.lan-ssl-access.log combined
</VirtualHost>
Malgré une documentation en francais d'apache j'ai compris que je pouvais avec le paramètre ProxyErrorOverride à ON et une liste de code HTTP souhaité ne forçait que la personnalisation pour les codes que j'indique.
Lors d'un test j'ai généré sur Gunicorn une erreur HTTP 409 souhaité mais coté client c'est la page HTTP 409 d'apache qui est transmis et non la page Gunicorn.
Est-ce que mon besoin peut bien être traité avec un reverse-proxy apache ? si oui je vois pas mon erreur je veux bien un coup de main svp.
Merci d'avance
Guedz
Dernière modification par guedz45 (Le 06/03/2021, à 18:38)
Hors ligne
#2 Le 25/02/2021, à 16:19
- Vobul
Re : [RESOLU] Reverse-proxy avec personnalisation de certains codes erreurs
Pour moi ProxyErrorOverride ne prend que On|Off comme valeur. Donc ta liste de statuts qui suit est à mon avis simplement ignorée.
Malheureusement pas de réponses ici : https://serverfault.com/questions/10403 … ttp-status
Mais je t'invite fortement à regarder du côté de HAProxy, un logiciel open source, français, de grand qualité et qui sera capable de faire exactement ce que tu lui demandes et bien plus encore ! (extensible avec lua si besoin). Voir article : https://www.haproxy.com/blog/serve-dyna … h-haproxy/
Dernière modification par Vobul (Le 25/02/2021, à 16:21)
Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM
Hors ligne
#3 Le 25/02/2021, à 16:59
- guedz45
Re : [RESOLU] Reverse-proxy avec personnalisation de certains codes erreurs
Bonjour et merci pour cette réponse :
Effectivement sur la page de la documentation apache on peut lire ceci :
Syntaxe : ProxyErrorOverride Off|On [code ...]
Exemple de configuration personnalisé
ProxyErrorOverride On 403 405 500 501 502 503 504
Et mon interprétation était que l'on activait cette option à On uniquement pour les codes qui suivent et si aucun code de renseigné il applique à tous les codes entre 400 et 600 exclus
Ton exemple avec HAPROXY me plait beaucoup et répond totalement à la problématique mais pour le moment, avant de déployer une VM pour HAPROXY, je vais essayé de voir si on peut le faire avec mon serveur apache...
HAPROXY sera ma solution de secours
Si vous avez une idée pourquoi je m'en sors pas avec Apache je vous écoute
Guedz
Dernière modification par guedz45 (Le 25/02/2021, à 17:00)
Hors ligne
#4 Le 25/02/2021, à 17:24
- guedz45
Re : [RESOLU] Reverse-proxy avec personnalisation de certains codes erreurs
Je pense m'auto répondre sur une partie du sujet :
Quand on lit en diagonale...
La documentation apache indique :
Syntaxe : ProxyErrorOverride Off|On [code ...]
Compatibilité: La liste de codes d'états a été ajoutée à partir de la version 2.5.1. du serveur HTTP Apache.
Ma version d'Apache est en 2.4.x donc la prise en charge d'une liste spécifique de code erreur HTTP n'est pas possible dans cette version...
Pour reformuler mon besoin, j'ai besoin si mon serveur backend est arrêté pour maintenance ou crash de pouvoir gérer une page "maintenance" via mon reverse proxy apache au lieu d'avoir un le serveur ne répond pas...
Hors ligne
#5 Le 25/02/2021, à 17:36
- Vobul
Re : [RESOLU] Reverse-proxy avec personnalisation de certains codes erreurs
avant de déployer une VM pour HAPROXY
oulah tout de suite les gros sabots !
Un container docker en read only qui écoute sur 80 et 443 ça suffit hein
Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM
Hors ligne
#6 Le 25/02/2021, à 17:40
- guedz45
Re : [RESOLU] Reverse-proxy avec personnalisation de certains codes erreurs
Bien vu le docker pull haproxy mais effectivement j'aimerai voir si apache permet de répondre en parti ou non à ma demande
Promis Vobul, çà sera du docker et pas une VM
Hors ligne
#7 Le 06/03/2021, à 18:38
- guedz45
Re : [RESOLU] Reverse-proxy avec personnalisation de certains codes erreurs
Finalité de l'histoire : un petit container docker avec HAPROXY pour faire le job.
Merci pour tes interventions Vobul.
Hors ligne