Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 smile

Si vous avez une idée pourquoi je m'en sors pas avec Apache je vous écoute smile

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

guedz45 a écrit :

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 wink


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 smile 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 big_smile 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