Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Web-server fail-over opzetten  (gelezen 3333 keer)

Offline hansvl

  • Lid
Web-server fail-over opzetten
« Gepost op: 2025/02/13, 11:18:35 »
Een Ubuntu 20.04.6 systeem met Nginx 1.26.3 heb ik opgezet als web-server.
Als deze server herstart wordt is de web-site (uiteraard) even niet bereikbaar.
Ik wil een opzet maken dat als iemand een web-site op die server probeert te openen op het moment dat die server niet bereikbaar,
dat dan die persoon automatisch op een andere web-server terecht komt in een web-pagina waarin de melding staat dat de (originele) web-server
even niet bereikbaar is. Op die 'fail-over' staat dan geen kopie van de originele web-site.

Hoe kan ik dit het beste opzetten?
Kan dat via een tweede A record in de DNS server met het IP- adres van de 'fail-over' server?

Offline bart85

  • Lid
Re: Web-server fail-over opzetten
« Reactie #1 Gepost op: 2025/02/13, 15:30:42 »
Volgens chatgpg
Citaat
stel dat de server uitvalt kan er dan doorverwezens naar een ander ip
ChatGPT said:

Ja, je kunt failover-mechanismen implementeren in DNS om bij een serveruitval naar een ander IP-adres door te verwijzen. Hier zijn enkele manieren om dat te doen:
1. Meerdere A- of AAAA-records (Round Robin DNS)

    Je kunt meerdere A- of AAAA-records instellen voor hetzelfde domein, bijvoorbeeld:

    example.com  300  IN  A  192.168.1.1 
    example.com  300  IN  A  192.168.1.2 

    Clients ontvangen willekeurig een van de IP-adressen. Dit werkt als eenvoudige load balancing, maar heeft geen echte failoverdetectie. Als een server uitvalt, kunnen sommige gebruikers nog steeds naar het verkeerde IP worden gestuurd totdat hun cache vernieuwd wordt.

2. DNS Failover met een monitoringservice

    Sommige DNS-providers (zoals Cloudflare, AWS Route 53, en Google Cloud DNS) bieden geautomatiseerde failover.
    Ze controleren de primaire server via bijvoorbeeld een health check (ping, HTTP request, TCP check).
    Als de primaire server onbereikbaar is, wordt het DNS-record automatisch aangepast naar een back-upserver.

3. Load Balancer of Reverse Proxy

    Je kunt een load balancer zoals HAProxy, Nginx, of Cloudflare Load Balancer gebruiken.
    De load balancer detecteert automatisch wanneer een server offline is en stuurt verkeer door naar een andere server zonder dat DNS-wijzigingen nodig zijn.
    Dit voorkomt DNS-cacheproblemen, omdat het IP-adres van de load balancer altijd hetzelfde blijft.

4. Anycast DNS

    Anycast stuurt verkeer naar de dichtstbijzijnde server van een groep identieke servers.
    Als een server uitvalt, wordt verkeer automatisch omgeleid naar de volgende beschikbare server.
    Dit wordt vaak gebruikt door CDNs en grote cloudproviders.

5. Geavanceerde technieken: BGP Routing

    Grote netwerken kunnen BGP (Border Gateway Protocol) gebruiken om IP-routes dynamisch aan te passen bij een serveruitval.
    Dit is complexer en wordt vooral door grote bedrijven en datacenters gebruikt.
Je leert maar mooi over weg gaan met de commandline.
Linus: "I'm happy with the people who are wandering around looking at the stars but I am looking at the ground and I want to fix the pothole before I fall in."
I look to the clouds behind me and see the thunder coming.

Offline hansvl

  • Lid
Re: Web-server fail-over opzetten
« Reactie #2 Gepost op: 2025/02/13, 16:15:24 »
Bart85 bedankt voor je tips, maar:

Meerdere A-records in de DNS server is geen optie omdat clients willekeurig één van de A-records terug krijgen.
De primaire web-server moet altijd als eerste benaderd worden en pas als de primaire web-server niet bereikbaar is moet de secondaire web-webserver benaderd worden.

Het A-record aanpassen in de DNS-server is ook geen optie omdat de primaire web-server (meestal) alleen tijdens het rebooten niet bereikbaar is en dat duurt maar
+/- 1 minuut en +/- 2 minuten voordat de website weer bereikbaar is.

Een load balancer is ook geen optie want als de load balancer zelf herstart wordt is de web-site alsnog niet bereikbaar.

Offline hansvl

  • Lid
Re: Web-server fail-over opzetten
« Reactie #3 Gepost op: 2025/02/13, 16:28:52 »
Bart85 bedankt voor je tips, maar:

Meerdere A-records in de DNS server is geen optie omdat clients willekeurig één van de A-records terug krijgen.
De primaire web-server moet altijd als eerste benaderd worden en pas als de primaire web-server niet bereikbaar is moet de secondaire web-webserver benaderd worden.

Het A-record aanpassen in de DNS-server is ook geen optie omdat de primaire web-server (meestal) alleen tijdens het rebooten niet bereikbaar is en dat duurt maar
+/- 1 minuut en +/- 2 minuten voordat de website weer bereikbaar is.

Een load balancer is ook geen optie want als de load balancer zelf herstart wordt is de web-site alsnog niet bereikbaar.

Het inrichten van 2 (redundante) load balancers (die nooit gelijker tijd herstart worden) en 2 A-records die ieder naar één van de load balancers verwijzen maakt het wel
een erg uitgebreide oplossing voor een relatief simpel probleem.

Offline MKe

  • Lid
Re: Web-server fail-over opzetten
« Reactie #4 Gepost op: 2025/02/13, 22:09:19 »
Ik snap überhaupt niet waarom je een webserver zo vaak herstart dat je een failover nodig hebt. Klinkt als de verkeerde oplossing voor een probleem.

Offline hansvl

  • Lid
Re: Web-server fail-over opzetten
« Reactie #5 Gepost op: 2025/02/17, 13:30:26 »
Voor Ubuntu Linux komt regelmatig een nieuwe kernel versie beschikbaar.
Vaak zitten daar ook security updates in.
Die nieuwe kernel wordt pas actief na een reboot.

Offline MKe

  • Lid
Re: Web-server fail-over opzetten
« Reactie #6 Gepost op: 2025/03/03, 12:56:28 »
Ja, maar als je die 2 minuten downtime niet kunt hebben, dan lijkt mij hosten op een simpele server met Ubuntu niet de juiste manier. Ten eerste is Ubuntu dan niet het juiste OS, Debian of Redhat is dan veel logischer. Beter nog is hosten op een Kubernetes cluster (heb je nog tijd over?) of beter, huur wat cloud ruimte, Azure, AWS of Google Cloud en host het daar. Zelfs daar ga je geen 100% up time gegarandeerd krijgen, maar het is de enige manier om in de buurt van dat getal te komen. Zij zorgen ervoor dat je onderliggende OS up to date is zonder downtime (gebruik dus geen VM, dat is een anti-pattern).