it-swarm.com.de

Leiten Sie Besucher weiter, wenn die Site zu ausgelastet ist

Wir erwarten diese Woche einen starken Anstieg der Besucherzahlen auf unserer Website. Wenn die Website überlastet wird (d. H. Besucher erhalten einen 503-Fehler), möchte ich Besucher auf eine andere Webadresse umleiten. Wie würde ich das machen?

7
SamTheMan

Wenn Ihre Website aufgrund eines hohen Datenaufkommens überlastet ist, empfiehlt es sich, benutzerdefinierte Fehlerdokumente zu verwenden. Wenn ein Benutzer den Fehlercode 503 erhält, leitet der Server die Besucher zur benutzerdefinierten Fehlerdokumentseite weiter, die Sie definiert haben.

Verschiedene Server haben verschiedene Möglichkeiten, Fehlerdokumentenseiten anzupassen.

1. Fügen Sie für Apache-Server den folgenden Code in die Datei .htaccess ein.

ErrorDocument 503 http://example.com/maintenance.html

2. Fügen Sie für IIS 7-Server den folgenden Code in web.config hinzu

<system.webServer>
    <httpErrors errorMode="Custom" existingResponse="Replace">
        <remove statusCode="503" />
        <error statusCode="503" responseMode="Redirect" 
               path="http://example.com/maintenance.htm" />
    </httpErrors>
</system.webServer>

Ref. CustomError in web.config

3. Fügen Sie für Tomcat 7-Server den folgenden Code in die Datei WEB-INF/web.xml ein.

<error-page>
    <error-code>503</error-code>
    <location>/Error.jsp</location>
</error-page>

<error-page>
    <exception-type>Java.lang.Exception</exception-type>
    <location>/Error.jsp</location>
</error-page>

Ref. Benutzerdefinierte Fehlerseite in Tomcat 7

10
Nikhil Supekar

Es scheint, als würden Sie das zweitschlechteste Ergebnis anstreben . Wenn Sie eine Spitze erwarten, haben Sie Zeit, etwas zu tun:

  • Implementieren Sie In-Code-Caching (es kann einfach sein, es kann eine Weile dauern, bis das Problem behoben ist)
  • Optimieren Sie statische Dateien (jpegoptim, optipng, more-css usw.), um die Bandbreite zu reduzieren und die Arbeit für alle Benutzer zu beschleunigen.
  • Verschieben Sie Ihre statischen Daten in ein CDN, um diese Anforderungen vollständig aus Ihrem Netzwerk zu entfernen.
  • Wenn alles statisch ist, kopieren Sie die Site auf ein paar weitere Computer und verwenden Sie einen Lastenausgleich, um die Site unter einer IP zu halten. Klingt teuer, aber viele VPS-Anbieter bieten Ihnen ein solches Setup für etwa 20 US-Dollar pro Woche an.
  • Oder sehen Sie sich die Front-End-Caching-Dienste von CloudFlare an. Sogar ein Anfänger kann diese in Minuten implementieren, aber es hilft nicht viel, wenn Sie eine hochdynamische Site haben.

Bereiten Sie die Dinge einfach vor, damit Sie wissen, dass Sie alles getan haben, um sicherzustellen, dass die Benutzer das bekommen, was sie wollten zum ersten Mal. Planen, um zu scheitern, ist keine schlechte Praxis, aber schauen Sie sich die Optionen an, um zu vermeiden, dass es überhaupt zu Scheitern kommt!

Aber ja, die beste Standardoption (die Sie bereits implementiert haben sollten) besteht darin, Ihre Fehlerseiten so anzupassen, dass die Leute wissen, dass etwas falsch läuft. Ich möchte darauf hinweisen, dass die meisten Menschen sehr negativ auf diese reagieren. Wenn die Meldung "Bitte später zurück" lautet, wird nur ein Bruchteil eines Bruchteils zurückgegeben.

Dies ist wiederum eine ideale Gelegenheit, um zu überdenken, wie die Site gehostet wird, und wenn nichts anderes geplant ist, innerhalb einer Stunde nach dem Ausfall auf eine bessere Hardware umzusteigen.

5
Oli

Es gibt Dinge, die Sie auf verschiedenen Ebenen tun können:

Netzwerkebene

  1. Netzwerkhardware: Installieren Sie einen Load-Balancer mit zusätzlichen Servern. Auf diese Weise können Sie Ihr bestehendes Setup relativ einfach ausführen, aber die Einrichtung in der von Ihnen zur Verfügung gestellten Zeit wird wahrscheinlich eine Menge Geld kosten (abhängig von den Support-Levels Ihres Hosting-Anbieters).

  2. Virtuelle Hardware: Wechseln Sie zu einem Cloud-basierten System mit integriertem Lastenausgleich. Auf diese Weise erhalten Sie die Vorteile von Option 1, ohne die möglicherweise hohen Einrichtungskosten für Ihre Hosts (Sie zahlen nur für das, was Sie verwenden). Dies kann jedoch einige Zeit in Anspruch nehmen auf deiner Seite zum Aufstellen.

Dies sind wahrscheinlich die "besten" Optionen, um damit umzugehen, und sie sind sehr bewährt, aber sie sind mit einem finanziellen Aufwand verbunden - insbesondere für Punkt 1.

Sie können jedoch beide so konfiguriert werden, dass sie Ihr "Worst-Case" -Szenario "Unsere Server können nicht" bewältigen. Die Loadbalancer können so konfiguriert werden, dass der gesamte Datenverkehr an einen Server weitergeleitet wird, der nur eine flache Seite enthält, auf der angegeben ist, dass die Site derzeit nicht erreichbar ist. Aber hier sind ein paar Informationen.

Software-Ebene

Zusätzlich zu den in den anderen Antworten beschriebenen Methoden können Sie Fehlerseiten auf den meisten Servern auf verschiedene Weise einrichten. In der Regel handelt es sich hierbei um eine Seite auf der Website. Sie sollten jedoch auch in der Lage sein, eine Weiterleitung zu einer Seite auf der Website durchzuführen auch einen anderen Server.

In IIS können Sie beispielsweise eine Fehlerantwort erstellen, die "Antwortet mit einer 302-Umleitung" - dies kann eine URL auf einem völlig anderen Server sein - Sie können dies auf der Ebene der .net-Fehlerseite oder auf der _-Seite tun.IIS Fehlerstufe:

.Netz

<customErrors mode="RemoteOnly">
  <remove statusCode="503" />
  <error redirect="htp://www.example.com/sitedown.html" statusCode="503" />
</customErrors>

IIS

Setting a redirect error in IIS

3

Wenn Sie Apache verwenden: Durchsuchen Sie Ihren Stammordner nach der Datei "htaccess.txt" oder ".htaccess". Fügen Sie die folgende Zeile hinzu:

ErrorDocument 503 http://www.example.com/customhtml.html

Sie haben Ihre Besucher zu customhtml.html umgeleitet. Sie können einen Iframe Ihrer "anderen Webadresse" in den HTML-Code einfügen.

0
Mithra

Ich werde vorschlagen, mehrere Server zu verwenden, um dieses Problem zu lösen, bei denen die Server in einem geschützten Format verbunden sind. Wenn also die Serverlast eines Servers hoch ist, wird der Datenverkehr auf den zweiten Server umgeleitet und so weiter

0
Himanshu Singla