Categories

viimeksi päivitetty 09.maaliskuuta 2020

Herokun HTTP-reititin palvelee unstyled HTML: ää HTTP-tilakoodilla 503 (Palvelu ei saatavilla), kun sovelluksesi kohtaa järjestelmätason virheen tai kun ylläpitotila on käytössä.

muut virheet, kuten sovellusvirheet (a 404 tai 500), näyttävät sovelluksen virhesivun eikä Herokun virhesivua. Vain järjestelmätason virheet, jotka eivät johda vastaukseen, tai epämuodostunut yksi, näyttää Heroku virhe sivu käsitellään tässä.

virheenkorjaus

lokit ovat ensimmäinen paikka katsoa, kun käyttäjät ilmoittavat nähneensä Herokun virhesivut. Käytä heroku logs – komentoa nähdäksesi sovelluksesi yhtenäisen tapahtumavirran ja hakemustasi tukevien Heroku-Alustan komponenttien tilan.

$ heroku logs2011-03-01T16:16:29-08:00 heroku: State changed from starting to crashed2011-03-01T16:16:59-08:00 heroku: at=error code=H10 desc="App crashed" method=GET path=/ host=myapp.herokuapp.com fwd=17.17.17.17 dyno= connect= service= status=503 bytes=

tässä esimerkissä reititin yritti palvella sovellukselle sivua, mutta web-prosessi kaatui. Lokimerkintä Error H10 sisältää virhekoodin H10, joka tunnistaa tämän ongelman syyn. Katso täydellinen luettelo virhekoodit määrittää syy virhe näkemäsi.

jos haluat lisätietoja virheiden jäljittämisestä, jotka voivat johtaa virhesivujen syntymiseen, käy kirjautumisen artikkelissa. Jos haluat debug edelleen, oppia SSH osaksi dyno.

muokkaa sivuja

käyttäjille näkyvät sivut, kun sovellus kohtaa järjestelmävirheen tai on sijoitettu ylläpitotilaan, voidaan räätälöidä. Muokkaamalla näitä sivuja voit esittää johdonmukaisempaa käyttöliittymää käyttäjille.

luo ja tallenna mukautetut sivut

luo mukautetut sivut staattisena HTML: nä. Haluat ehkä käyttää oletuksena HTML tarjoama Heroku mallina:

  • https://www.herokucdn.com/error-pages/application-error.html
  • https://www.herokucdn.com/error-pages/no-such-app.html
  • https://www.herokucdn.com/error-pages/maintenance-mode.html
  • https://www.herokucdn.com/error-pages/ssl-cert-error.html

voit viitata HTML: n kuviin tai CSS: ään, kunhan käytät suhteellisia polkuja (esimerkiksi <img src="error.png">) ja lataat muut varat samaan paikkaan HTML: n kanssa.

voit ylläpitää sivuja missä tahansa, joka voi palvella verkkosivuja. Suosittelemme lataamista Amazon S3. Jos käytät S3, älä unohda asettaa HTML ja kaikki varat ovat julkisesti luettavissa.

iframen suojausasetusten vuoksi mukautetun virhesivusi linkit eivät välttämättä toimi, ellet määritä HTML: ssä ”target=_blank”.

Configure your application

Set ERROR_PAGE_URL and MAINTENANCE_PAGE_URL config vars to the public accessible URLs of your custom pages:

$ heroku config:set \ ERROR_PAGE_URL=//s3.amazonaws.com/<your_bucket>/your_error_page.html \ MAINTENANCE_PAGE_URL=//s3.amazonaws.com/<your_bucket>/your_maintenance_page.html

testaus

huoltosivun testaamiseksi, tyyppi:

$ heroku maintenance:on$ heroku open

mukautettu sivu palvellaan ja sovelluslokit näyttävät H80-koodin kyseiselle web-osumalle, joka osoittaa, että ylläpitosivu on palveltu käyttäjälle.

$ heroku logs -p router -n 12010-10-08T17:44:18-07:00 heroku: at=info code=H80 desc="Maintenance mode" method=GET path=/ host=myapp.herokuapp.com fwd=17.17.17.17 dyno= connect= service= status=503 bytes=

testataksesi virhesivusi, voit työntää huonon käyttöönoton kuten syntaksivirheen avaimen asetustiedostoon tai luomalla sovelluksen polun, joka nukkuu 35 sekuntia (jolloin virhe H12-pyynnön aikakatkaisu käynnistyy. Käy app tai polku tällaisen virheen, kun katsot lokit:

$ heroku logs --tail2010-10-08T18:04:40-07:00 app: Sleeping 35 seconds before I serve this page2010-10-08T18:05:10-07:00 heroku: at=error code=H12 desc="Request timeout" method=GET path=/ host=myapp.herokuapp.com fwd=17.17.17.17 dyno=web.1 connect=6ms service=30001ms status=503 bytes=02010-10-08T18:05:15-07:00 app: Done sleeping

mukautettu virhesivu näkyy selaimessasi.

SSL

jos sivustoasi käytetään SSL: n kautta, jotkin selaimet näyttävät varoituksen tai virheen, jos huolto-ja virhesivuilla ei käytetä myös HTTPS-osoitetta. Muista käyttää vastaavia sovellus-ja virhesivun protokollia.

Vastaa

Sähköpostiosoitettasi ei julkaista.