2011-01-04 19 views
5

Sto usando tomcat6 con setup mod_jk (entrambi in esecuzione sulla porta 80) su server ubuntu9.10 e 8.10. Distribuisco file di guerra in/usr/share/tomcat/webapps. Durante la distribuzione, come ho riavviato il gatto, mi metterò la pagina seguente quando l'applicazione Tomcat si accede sul browser:Reindirizza tomcat alla pagina di manutenzione quando inattivo

Service Temporarily Unavailable 

The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later. 
Apache/2.2.11 (Ubuntu) mod_jk/1.2.15 Server at 192.168.2.54 Port 80 

Come avrei potuto reindirizzare questa pagina a qualche altra pagina di manutenzione di auto creato mentre il server Tomcat è giù?.

risposta

5

Puoi pagina di errore di installazione personalizzata in Apache per il codice di errore 503.

http://httpd.apache.org/docs/2.2/mod/core.html#errordocument

ErrorDocument 503 /maintance.html 
+0

sì, sta lavorando su una macchina. Ma su un'altra macchina sta reindirizzando ma la pagina di manutenzione non viene visualizzata. Invece della pagina di manutenzione mostra 'maintenance.html' sul browser web quando controllo l'arresto del tomcat. C'è qualche trucco o suggerimenti qui? – user465465

4

Se stai usando connettori mod_jk e Tomcat questo è il comportamento previsto. Se si usa qualcosa come

ErrorDocument 503 "foo" 

si vedrà 'pippo' reso sulla pagina o

ErrorDocument 503 "http://www.somedomain.com" 

che vi indirizzerà alla someDomain.com successo. Ma se si utilizza qualcosa come

ErrorDocument 503 /maintenance.html 

Apache non sarà in grado di trovare [DocumentRoot] /maintenance.html dal momento che sta cercando nel contesto del connettore Tomcat. È necessario smontare il connettore e indicare ad Apache di pubblicare contenuto statico da un'altra posizione.

Questa è una buona guida per iniziare con mod_jk. Custom Error Pages with Apache and Tomcat Connectors

modifica: ecco la soluzione che ho impiegato per ottenere correttamente le nostre 503 pagine personalizzate.

In primo luogo, tutte le nostre pagine di errore personalizzate sono precedute dal codice di errore poiché è probabile che la nostra app Web non contenga file con questi codici di stato come la radice del nome del file. Quindi per usare il tuo esempio, avrei qualcosa come i seguenti tre file in una directory chiamata 'custom_errors':

/503_maintenance.html 
/503_maintenance.css 
/503_corp_logo.png 

Ciò rende più semplice per escludere tutti i file relativi a pagine di errore personalizzate dal jk montaggio. Nel nostro file vhost, quindi abbiamo impostato la posizione del documento di errore e alias

#Alias the location of your custom error page files 
Alias   /error/ /var/apache2/2.2/htdocs/custom_errors 
ErrorDocument 503  /error/503_maintenance.html 

#mount the core tomcat application 
JkMount  /*  myWorker 

#set the 503 code if myWorker is unavailable 
#and exclude the 503 pages from the tomcat/jboss application 
JkMount  /*  myWorker;use_server_errors=503 
JkUnMount /503* myWorker 

Questo dice in sostanza di Apache e non mod_jk di montare qualsiasi file con il prefisso 503 nel contesto del connettore Tomcat e cercheremo a livello locale per i file anziché. Se non si desidera utilizzare una posizione relativa a DocumentRoot, è possibile utilizzare e alias come ho fatto io.

+0

Risposta meravigliosa, ma non ha funzionato per me ... Ho dovuto cambiare due cose 1. aggiungendo una barra finale alla riga "Alias" 2. smontaggio/errore * invece/503 * –

+0

Ciao Andrij: puoi per favore controlla questa domanda, è simile. Non mi dispiacerebbe usare una pagina web per la manutenzione, ma non so dove dovrei metterli per il funzionamento della configurazione, cortesemente controlla questo link: http: // serverfault.com/domande/741.494/tomcat-httpd-running-a-webapp-quando-service-is-not-disponibile-o-sovraccarico –

Problemi correlati