IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

Non gestion de l'erreur 404 avec une configuration de reverse proxy


Sujet :

Apache

  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Non gestion de l'erreur 404 avec une configuration de reverse proxy
    Bonjour à tous.

    J'espère que vous pourrez m'aider car je commence à devenir chèvre avec ce souci.

    Je suis sous un environnement RH 5.0 AS sur VM avec un apache 2.2.3 en RP et je dois notamment rediriger les utilisateurs vers une page d'erreur pour la plupart des erreurs http 4XX et 5XX.

    Pour cela j'ai développé un fichier .conf spécifique. Lorsque je fais le test en provoquant une erreur 407 cela fonctionne très bien. Par contre lorsque cela se produit avec une erreur 404, ma page d'erreur ne s'affiche pas.

    Je vous mets ma configuration ci-dessous avec [...] pour les infos non nécessaire à la compréhension du souci.

    Petite précision j'ai aucune information sur l'erreur 404 qui s'inscrit dans l'error_log mais uniquement dans l'acces_log.

    "GET /[...]/[...]/[...]/?[...] HTTP/1.0" 404 219
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    <VirtualHost *:80>
    # gestion des cas d'erreurs
    ErrorDocument 400 /erreur.html
    ErrorDocument 401 /erreur.html
    ErrorDocument 402 /erreur.html
    ErrorDocument 403 /erreur.html
    ErrorDocument 404 /erreur.html
    ErrorDocument 407 /erreur.html	
    ErrorDocument 408 /erreur.html
    ErrorDocument 502 /erreur.html
    ErrorDocument 503 /erreur.html
    ErrorDocument 504 /erreur.html
     
    # Activation du SSL pour mod_proxy
    SSLProxyEngine on
    #SSLProxyVerify Require
     
    # Clef privee et certificat du reverse proxy
    SSLProxyMachineCertificateFile /etc/httpd/conf/[...]
     
     
    # Certificat du CA du serveur distant
    SSLProxyCACertificateFile /etc/httpd/conf/[...]
    SSLProxyCACertificateFile /etc/httpd/conf/[...]
     
    CustomLog logs/specif_access_log combined
    ErrorLog logs/specif_error_log
    LogLevel warn
     
    # configuration reverse proxy 
    ProxyRemote * <a href="http://@IP:port" target="_blank">http://@IP:port</a>
    #Credential en base64
    RequestHeader set proxy-Authorization "Basic [...]" 
    ProxyPass /[...]/ <a href="https://@IP:port/" target="_blank">https://@IP:port/</a>[...]/
    ProxyPass /[...]/ <a href="https://@IP:port/" target="_blank">https://@IP:port/</a>[...]/
    ProxyPassReverse /[...]/ <a href="https://@IP:port/" target="_blank">https://@IP:port/</a>[...]/
    ProxyPassReverse /[...]/ <a href="https://@IP:port/" target="_blank">https://@IP:port/</a>[...]/
    </VirtualHost>
    Par avance je vous remercie pour votre aide.

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    A priori si tu n'as pas de trace pour l'erreur 404 dans error_log c'est qu'il ne s'agit pas d'une erreur 404 déterminée par Apache mais par un script. Lequel ? Aucune idée.

    Sinon, as-tu essayé avec différents navigateurs ? IE peut utiliser ses propres pages d'erreur notamment pour la 404 et dans ce cas il se fiche royalement du code HTML que le serveur Web lui renvoie.

  3. #3
    Candidat au Club
    Inscrit en
    Janvier 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Non gestion de l'erreur 404
    Citation Envoyé par _Mac_ Voir le message
    A priori si tu n'as pas de trace pour l'erreur 404 dans error_log c'est qu'il ne s'agit pas d'une erreur 404 déterminée par Apache mais par un script. Lequel ? Aucune idée.

    Sinon, as-tu essayé avec différents navigateurs ? IE peut utiliser ses propres pages d'erreur notamment pour la 404 et dans ce cas il se fiche royalement du code HTML que le serveur Web lui renvoie.
    Merci _Mac_ de ta réponse.

    En complément, je voulais signaler que le serveur distant qui me répond est une boite noire pour moi, car je n'ai pas accès ni à sa configuration ni à ses données. De plus entre les 2 se trouve un proxy en coupure. Je vais voir avec l'admininistrateur de cette plateforme s'il n'y a pas un script.

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Telle qu'elle est, ta configuration fait qu'Apache ne tient pas compte des codes d'erreur des serveurs distants. Si le serveur distant renvoie une erreur 404, Apache va la renvoyer directement au navigateur en ignorant allégrement le ErrorDocument 404. Pour qu'Apache utilise les ErrorDocument avec mod_proxy, il faut le lire dire avec la directive ProxyErrorOverride :
    Ajoute cette ligne à ta configuration.

  5. #5
    Candidat au Club
    Inscrit en
    Janvier 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Non gestion de l'erreur 404 avec une configuration de reverse proxy
    Citation Envoyé par _Mac_ Voir le message
    Telle qu'elle est, ta configuration fait qu'Apache ne tient pas compte des codes d'erreur des serveurs distants. Si le serveur distant renvoie une erreur 404, Apache va la renvoyer directement au navigateur en ignorant allégrement le ErrorDocument 404. Pour qu'Apache utilise les ErrorDocument avec mod_proxy, il faut le lire dire avec la directive ProxyErrorOverride :
    Ajoute cette ligne à ta configuration.
    Si je comprends bien je dois rajouter cette ligne dans mon .conf comme ci-dessous ou dois je le rajouter dans le httpd.conf ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <VirtualHost *:80>
     
    ProxyErrorOverride On
     
    # gestion des cas d'erreurs
    ErrorDocument 400 /erreur.html
    ErrorDocument 401 /erreur.html
    ErrorDocument 402 /erreur.html
    ErrorDocument 403 /erreur.html
    ErrorDocument 404 /erreur.html
    ErrorDocument 407 /erreur.html	
    ErrorDocument 408 /erreur.html
    ErrorDocument 502 /erreur.html
    ErrorDocument 503 /erreur.html
    ErrorDocument 504 /erreur.html
     
    # Activation du SSL pour mod_proxy
    SSLProxyEngine on
    #SSLProxyVerify Require
     
    # Clef privee et certificat du reverse proxy
    SSLProxyMachineCertificateFile /etc/httpd/conf/[...]
     
     
    # Certificat du CA du serveur distant
    SSLProxyCACertificateFile /etc/httpd/conf/[...]
    SSLProxyCACertificateFile /etc/httpd/conf/[...]
     
    CustomLog logs/specif_access_log combined
    ErrorLog logs/specif_error_log
    LogLevel warn
     
    # configuration reverse proxy 
    ProxyRemote * http://@IP:port
    #Credential en base64
    RequestHeader set proxy-Authorization "Basic [...]" 
    ProxyPass /[...]/ https://@IP:port/[...]/
    ProxyPass /[...]/ https://@IP:port/[...]/
    ProxyPassReverse /[...]/ https://@IP:port/[...]/
    ProxyPassReverse /[...]/ https://@IP:port/[...]/
    </VirtualHost>

  6. #6
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Comme ça dans le VH, c'est bien, c'est ce qu'il faut faire. Après, je la mettrais un peu plus bas, dans le groupe des lignes liées au reverse proxy.

  7. #7
    Candidat au Club
    Inscrit en
    Janvier 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Non gestion de l'erreur 404 avec une configuration de reverse proxy
    Citation Envoyé par _Mac_ Voir le message
    Comme ça dans le VH, c'est bien, c'est ce qu'il faut faire. Après, je la mettrais un peu plus bas, dans le groupe des lignes liées au reverse proxy.
    Je viens de modifier le fichier de configuration et le test est concluant.

    Merci _Mac_ pour ton aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] Erreur 404 avec Ajax
    Par GuileIzback dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 15/01/2007, 11h58
  2. erreur 404 avec apache
    Par pepper18 dans le forum Apache
    Réponses: 4
    Dernier message: 02/11/2006, 19h02
  3. [MySQL] erreur #1064 avec une requete
    Par oceane751 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 25/02/2006, 22h31
  4. [C#] Erreur Oracle avec une requete paramétrée
    Par gael.mases dans le forum C#
    Réponses: 1
    Dernier message: 02/12/2005, 10h39
  5. Gestion des chemins des images avec une base de données...
    Par Nean dans le forum Bases de données
    Réponses: 4
    Dernier message: 27/07/2005, 08h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo