kategorier

Senast uppdaterad 09 Mars 2020

Herokus HTTP-router serverar ostylad HTML med HTTP-statuskod 503 (Tjänsten är inte tillgänglig) när din app stöter på ett systemnivåfel eller när underhållsläge är aktiverat.

andra fel, till exempel programfel (a 404 eller 500), visar programmets felsida och inte Heroku-felsidan. Endast systemnivåfel som resulterar i inget svar, eller ett felaktigt, kommer att visa Heroku-felsidan som diskuteras här.

felsökning

loggar är det första stället att titta när dina användare rapporterar att de ser Heroku-felsidorna. Använd kommandot heroku logs för att visa den enhetliga händelseströmmen för din applikation och tillståndet för Heroku-plattformskomponenterna som stöder din applikation.

$ 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=

i det här exemplet försökte routern att visa en sida för appen, men webbprocessen kraschade. Loggposten Error H10 innehåller felkoden H10 som identifierar orsaken till det här problemet. Se hela listan med felkoder för att avgöra orsaken till felet du ser.

om du vill veta mer om att spåra fel som kan leda till att felsidorna genereras, besök artikeln om loggning. Om du behöver felsöka ytterligare, lära dig att SSH i en dyno.

anpassa sidor

sidorna som visas för dina användare när programmet stöter på ett systemfel eller placeras i underhållsläge kan anpassas. Genom att anpassa dessa sidor kan du presentera ett mer konsekvent användargränssnitt för dina användare.

skapa och lagra anpassade sidor

skapa dina egna sidor som statisk HTML. Du kanske vill använda standard HTML betjänas av Heroku som en mall:

  • 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

du kan referera till bilder eller CSS från HTML så länge du använder relativa sökvägar (till exempel <img src="error.png">) och du laddar upp de andra tillgångarna till samma plats som HTML.

du kan vara värd för sidorna var som helst som kan tjäna webbsidor. Vi rekommenderar att du laddar upp till Amazon S3. Om du använder S3, glöm inte att ställa in HTML och alla tillgångar för att vara offentligt läsbara.

på grund av säkerhetsinställningar i IFrame kanske länkar på din anpassade felsida inte fungerar om du inte anger ”target=_blank” i HTML.

konfigurera din applikation

Ställ in ERROR_PAGE_URL och MAINTENANCE_PAGE_URL config vars till de offentligt tillgängliga webbadresserna för dina anpassade sidor:

$ 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

testa

för att testa din underhållssida, skriv:

$ heroku maintenance:on$ heroku open

den anpassade sidan kommer att serveras och dina programloggar kommer att visa en H80-kod för den webb träffen som indikerar att en underhållssida serverades för användaren.

$ 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=

för att testa din felsida kan du trycka på en dålig deploy som att sätta ett syntaxfel i en nyckelkonfigurationsfil eller genom att skapa en sökväg i din app som sover i 35 sekunder (vilket utlöser felet H12 Request Timeout. Besök en app eller sökväg med ett sådant fel medan du tittar på loggarna:

$ 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

den anpassade felsidan visas i din webbläsare.

SSL

om din webbplats nås via SSL kommer vissa webbläsare att visa en varning eller ett fel om underhålls-och felsidorna inte också använder en HTTPS-URL. Var noga med att använda matchande program-och felsidesprotokoll.

Lämna ett svar

Din e-postadress kommer inte publiceras.