Wir erwarten diese Woche einen starken Anstieg des Datenverkehrs auf unserer Website. Wenn die Site überlastet wird (dh Besucher erhalten einen 503-Fehler), möchte ich Besucher zu einer anderen Webadresse umleiten. Wie würde ich das machen?
Wir erwarten diese Woche einen starken Anstieg des Datenverkehrs auf unserer Website. Wenn die Site überlastet wird (dh Besucher erhalten einen 503-Fehler), möchte ich Besucher zu einer anderen Webadresse umleiten. Wie würde ich das machen?
Antworten:
Wenn Ihre Website aufgrund eines großen Datenverkehrs zu voll ist, können Sie am besten benutzerdefinierte Fehlerdokumente umleiten. Wenn ein Benutzer den 503-Fehlercode erhält, leitet der Server Besucher auf die von Ihnen definierte benutzerdefinierte Fehlerdokumentseite weiter.
Es gibt verschiedene Möglichkeiten für verschiedene Server, Fehlerdokumentseiten anzupassen.
1. Fügen Sie für den Apache-Server den folgenden Code in die .htaccess
Datei ein.
ErrorDocument 503 http://example.com/maintenance.html
2. Fügen Sie für den IIS 7-Server den folgenden Code in die Datei web.config ein
<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 den Tomcat 7-Server den folgenden Code zur WEB-INF/web.xml
Datei hinzu.
<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>
responseMode
von File
von ändern Redirect
und dann eine absolute URL angeben, mit der Sie die Anforderungen an einen anderen Server senden können.
Anscheinend streben Sie das zweitschlechteste Ergebnis an. Wenn Sie eine Spitze erwarten, haben Sie Zeit, etwas zu tun:
jpegoptim
, optipng
, more-css
, usw.) Bandbreite, Geschwindigkeit Dinge zu reduzieren , für alle Benutzer.Bereiten Sie die Dinge einfach vor, damit Sie wissen, dass Sie im Falle eines Zusammenbruchs alles getan haben, um sicherzustellen, dass diese Benutzer beim ersten Mal das bekommen, was sie wollten . Das Planen eines Scheiterns ist keine schlechte Praxis, aber schauen Sie sich die Optionen an, um ein Scheitern zu vermeiden!
Aber ja, die beste Standardoption (die Sie bereits implementiert haben sollten) besteht darin, Ihre Fehlerseiten so anzupassen, dass die Leute wissen, dass etwas nicht stimmt. Ich sollte darauf hinweisen, dass die meisten Menschen sehr negativ auf diese reagieren. Wenn die Meldung "Bitte kommen Sie später wieder" lautet, erwarten Sie, dass nur ein Bruchteil eines Bruchteils zurückkehrt.
Dies ist also wiederum eine ideale Gelegenheit, um zu überprüfen, wie die Site gehostet wird, und wenn nichts anderes geplant ist, innerhalb einer Stunde nach dem Ausfall auf bessere Hardware umzusteigen.
Es gibt Dinge, die Sie auf verschiedenen Ebenen tun können:
Netzwerkhardware: Installieren Sie einen Load-Balancer mit zusätzlichen Servern dahinter. Auf diese Weise können Sie Ihre vorhandenen Einstellungen relativ einfach ausführen, die Einrichtung kostet jedoch wahrscheinlich viel Geld in dem Zeitrahmen, den Sie haben (abhängig von den Unterstützungsstufen Ihrer Hosting-Anbieter).
Virtuelle Hardware: Wechseln Sie zu einem Cloud-basierten System mit integriertem Lastenausgleich. Dies bietet Ihnen die Vorteile von Option 1, ohne die potenziell hohen Einrichtungskosten für Ihre Hosts (Sie zahlen nur für das, was Sie verwenden). Dies kann jedoch einige Zeit dauern auf Ihrer Seite einzurichten.
Dies sind wahrscheinlich die "besten" Optionen, um damit umzugehen, und sie sind sehr bewährt, aber sie sind mit finanziellen Kosten verbunden - insbesondere für Punkt 1.
Beide können jedoch so konfiguriert werden, dass sie Ihr "Worst-Case" -Szenario "Unsere Server können nicht damit umgehen" bewältigen. Die Loadbalancer können so konfiguriert werden, dass der gesamte Datenverkehr an einen Server weitergeleitet wird, auf dem nur eine flache Seite angezeigt wird, auf der angegeben ist, dass die Site derzeit nicht verfügbar ist. Aber hier sind ein paar Informationen.
Zusätzlich zu den in den anderen Antworten beschriebenen Methoden können Sie auf den meisten Servern auf verschiedene Arten Fehlerseiten einrichten. In der Regel handelt es sich dabei um eine Seite auf der Site. Sie sollten jedoch auch in der Lage sein, eine Weiterleitung zu einer Seite auf zu erteilen ein anderer Server auch.
In IIS können Sie beispielsweise eine Fehlerantwort erstellen, die "Mit einer 302-Umleitung antwortet" - dies kann eine URL auf einem völlig anderen Server sein -. Sie können dies auf der .net-Fehlerseitenebene oder der IIS-Fehlerebene tun:
<customErrors mode="RemoteOnly">
<remove statusCode="503" />
<error redirect="htp://www.example.com/sitedown.html" statusCode="503" />
</customErrors>
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 dem HTML-Code einen Iframe Ihrer "anderen Webadresse" hinzufügen.
Ich werde vorschlagen, mehrere Server zu verwenden, um dieses Problem zu lösen, bei denen Server im Clustred-Format verbunden sind. Wenn also die Serverlast von eins hoch wird, wird Ihr Datenverkehr auf den zweiten Server umgeleitet und so weiter