2009-08-19 7 views
8

Occasionalmente quando provo ad aprire un sito vedrò una pagina che dice smth come "Questo sito è offline per manutenzione" e poi alcuni commenti seguono su quanto tempo presumibilmente dovrebbe prendere. Stack Overflow fa anche questo.Come è implementata la pagina "È offline per la manutenzione"?

Come funziona? Voglio dire se il sito è spento chi risponde alla mia richiesta HTTP e serve questa pagina?

+0

domanda correlata: http://stackoverflow.com/questions/756532/strategies-for-showing-a-nice-currently-offline-page-when-the-server-is-down – Spoike

risposta

18

C'è un trucco in asp.net dove si posiziona un file chiamato

App_Offline.htm 

Tutte le richieste andranno a questo, fino a quando la pagina viene eliminata.

Per altri ambienti è spesso possibile modificare solo dove punta il server o un altro di tali piani.

- Modifica

Un approccio di server-agnostic è ottenuta attraverso qualcosa come il bilanciamento del carico.

Sotto il cofano è possibile inviare le richieste a un determinato server interno. Potresti quindi decidere di indirizzare tutte le richieste al tuo server 'a', che tu configuri per mostrare la pagina 'downtime'. Quindi, apporti le modifiche al server "b", confermalo come riuscito e punta tutte le richieste a "b". Quindi aggiorni "a" e lascia che le richieste vadano entrambe.

11

In ASP.NET (e ASP.NET MVC come utilizza StackOverflow) questo è fornito dallo app_offline.htm feature. Funziona semplicemente inoltrando tutte le richieste ASP.NET al file app_offline.htm.

Incidentalmente il copy Web Site tool in ASP.NET esegue il processo di inserimento di questo file nella radice dell'applicazione Web, copia i file del sito Web e quindi elimina questo file.

Le strategie per altre tecnologie sono discussed here.

2

Il server proxy inverso Apache può essere configurato per inviare tale risposta, se viene utilizzata come parte di tale architettura.

5

In apache è possibile utilizzare un file .htacces con questo contenuto.

order deny,allow 
allow from 192.168.1.151 
deny from all 

ErrorDocument 403 404.html 
ErrorDocument 404 404.html 
ErrorDocument 500 404.html 

Questo negherà l'accesso a tutti tranne un IP e servirà un file statico 404.html.

Questo funziona nel caso in cui si abbia un solo server senza bilanciamento del carico e altro. Dovrebbe funzionare anche per il bilanciamento del carico.

Problemi correlati