2010-11-21 22 views
2

Je travaille sur une application web que j'utilise sur Tomcat 6.0.18, et j'utilise Apache 2 comme proxy inverse. Cela fonctionne bien. J'essaye également d'obtenir Apache pour montrer des pages d'erreur quand, par exemple, j'ai arrêté Tomcat pour le redéploiement etc. Cependant, la directive ErrorDocument dans mon httpd.conf ne semble pas fonctionner du tout pour des dossiers locaux. J'ai essayé des URL et des chaînes externes et ces deux cas fonctionnent bien. Mais ce qui suit ne fonctionne pas:ErrorDocument ne fonctionne pas avec le fichier local

ErrorDocument 403 /Oops.html 
ErrorDocument 404 /Oops.html 
ErrorDocument 502 /Oops.html 
ErrorDocument 503 /Oops.html 

Le fichier Oops.html se trouve dans mon dossier htdocs. Voici quelques sortie du journal de httpd quand j'essayez d'accéder à l'application lorsque Tomcat ne fonctionne pas, mais httpd est:

==> access_log <== 
localhost - - [21/Nov/2010:12:23:36 -0800] "GET /home HTTP/1.1" 503 - 

==> error_log <== 
[Sun Nov 21 12:23:36 2010] [debug] mod_proxy_http.c(54): proxy: HTTP: canonicalising URL //localhost:8080/home 
[Sun Nov 21 12:23:36 2010] [debug] proxy_util.c(1412): [client ::1] proxy: http: found worker http://localhost:8080/ for http://localhost:8080/home 
[Sun Nov 21 12:23:36 2010] [debug] mod_proxy.c(819): Running scheme http handler (attempt 0) 
[Sun Nov 21 12:23:36 2010] [debug] mod_proxy_http.c(1693): proxy: HTTP: serving URL http://localhost:8080/home 
[Sun Nov 21 12:23:36 2010] [debug] proxy_util.c(1790): proxy: HTTP: retrying the worker for (localhost) 
[Sun Nov 21 12:23:36 2010] [error] proxy: HTTP: disabled connection for (localhost) 
[Sun Nov 21 12:23:36 2010] [debug] mod_proxy_http.c(54): proxy: HTTP: canonicalising URL //localhost:8080/Oops.html 
[Sun Nov 21 12:23:36 2010] [debug] proxy_util.c(1412): [client ::1] proxy: http: found worker http://localhost:8080/ for http://localhost:8080/Oops.html 
[Sun Nov 21 12:23:36 2010] [debug] mod_proxy.c(819): Running scheme http handler (attempt 0) 
[Sun Nov 21 12:23:36 2010] [debug] mod_proxy_http.c(1693): proxy: HTTP: serving URL http://localhost:8080/Oops.html 
[Sun Nov 21 12:23:36 2010] [debug] proxy_util.c(1790): proxy: HTTP: retrying the worker for (localhost) 
[Sun Nov 21 12:23:36 2010] [error] proxy: HTTP: disabled connection for (localhost) 

Notez que je ne suis pas à l'aide d'un fichier .htaccess. Il semble qu'il y ait un problème avec les paramètres liés au dossier htdocs. Voici quelques bits de mon fichier httpd.conf qui concerne le foler htdocs. Je suis nouveau à travailler avec Apache, donc je ne suis pas sûr à quel point c'est pertinent ou si je devrais poster plus.

<Directory "/usr/local/apache2/htdocs"> 
    Options Indexes FollowSymLinks 
    AllowOverride None 
    Order allow,deny 
    Allow from all  
</Directory> 

Toute aide très appréciée!

EDIT:

Lorsque Tomcat est en cours d'exécution je vois ces lignes dans le journal des erreurs:

[Sun Nov 21 13:30:11 2010] [error] [client ::1] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace. 
[Sun Nov 21 13:30:11 2010] [debug] core.c(3046): [client ::1] r->uri = /Oops.html 
[Sun Nov 21 13:30:11 2010] [debug] core.c(3052): [client ::1] redirected from r->uri = /Oops.html 
[Sun Nov 21 13:30:11 2010] [debug] core.c(3052): [client ::1] redirected from r->uri = /Oops.html 
[Sun Nov 21 13:30:11 2010] [debug] core.c(3052): [client ::1] redirected from r->uri = /Oops.html 
[Sun Nov 21 13:30:11 2010] [debug] core.c(3052): [client ::1] redirected from r->uri = /Oops.html 
[Sun Nov 21 13:30:11 2010] [debug] core.c(3052): [client ::1] redirected from r->uri = /Oops.html 
[Sun Nov 21 13:30:11 2010] [debug] core.c(3052): [client ::1] redirected from r->uri = /Oops.html 
[Sun Nov 21 13:30:11 2010] [debug] core.c(3052): [client ::1] redirected from r->uri = /Oops.html 
[Sun Nov 21 13:30:11 2010] [debug] core.c(3052): [client ::1] redirected from r->uri = /Oops.html 
[Sun Nov 21 13:30:11 2010] [debug] core.c(3052): [client ::1] redirected from r->uri = /Oops.html 
[Sun Nov 21 13:30:11 2010] [debug] core.c(3052): [client ::1] redirected from r->uri =/

Quelque chose n'est pas configuré correctement mais je ne I quoi ou où. Merci pour les réponses à ce jour, mais toujours perplexe.

+0

Avez-vous des RewriteRules quelque part le long de la ligne, peut-être dans un répertoire plus haut l'arbre ou dans la configuration? .... Bien qu'à la réflexion, cela pourrait être une récursivité car il ne trouve pas le document 404 et ne trouve pas le document 404 et ainsi de suite et ainsi de suite ... –

+0

check is 'DocumentRoot' +'/Ops.html' = '/ usr/local/apache2/htdocs/Ops.html'? sorte de penser que vous utilisez différent DocumentRoot – ajreal

+0

@ajreal: J'ai désactivé tous les mandataires et supprimé les directives de document d'erreur et redémarré. J'ai été en mesure d'accéder à quelques autres pages dans le répertoire que j'ai configuré comme DocumentRoot, donc cela semble correctement configuré. – richever

Répondre

0

Si spécifié dans la configuration centrale, Apache traitera probablement le chemin comme absolu, en recherchant Oops.html dans le répertoire racine. Essayez d'utiliser un chemin complet:

ErrorDocument 403 /usr/local/apache2/htdocs/Oops.html 

Sinon, je suppose que si vous le mettez dans la section VirtualHost, il fonctionnera relativement.

ErrorDocument docs

+0

J'ai déjà essayé vos deux suggestions, combinées même, et je ne reçois toujours rien. Merci quand même. – richever

+0

@richever étrange. Êtes-vous sûr que le serveur web a les permissions pour lire le fichier? –

+0

J'ai essayé d'autres fichiers dans ce répertoire et je l'ai aussi chmodé pour qu'il soit accessible mais toujours rien. Je vais modifier mon message pour mentionner une ligne suspecte dans le journal des erreurs pointant vers une mauvaise configuration. – richever

1

AllowOverride ne doit pas être Aucun

+0

Est-ce déjà défini dans la configuration? –