Hulpartikel overzicht

Hulpartikel

Redundante Nginx setup met HA-IP Pro

Zelfs het meest veilige datacenter kan niet voorkomen dat hardware van tijd tot tijd defect raakt. Daarom is het voor bedrijfskritische processen nuttig om servers redundant op te zetten zodat als er een server uitvalt, dat niet betekent dat je gehele infrastructuur uitvalt.

In deze handleiding laten we zien hoe je een Nginx-server redundant en met loadbalancing opzet. Hiervoor maken we gebruik van:

Je kunt deze setup ook opschalen naar meerdere VPS'en en domeinen. Het process dat in dit artikel beschreven wordt blijft hetzelfde.

  • Host je dynamische websites en ben je op zoek naar hoe je ook je database server redundant opzet? Neem dan een kijkje in onze redundantie tutorial series.
     
  • Het doel van deze setup is redundantie zodat als een availability zone onbereikbaar wordt, jouw website in de lucht blijft. We raden daarom aan je VPS'en geografisch te scheiden en er bijvoorbeeld één in Amsterdam te plaatsen en één in Delft (RTM).

HA-IP Pro configureren

TL;DR: stel je HA-IP Pro in zoals in het screenshot bij stap 1.

Stap 1

Ga in je controlepaneel naar je HA-IP Pro en klik op het tandwiel achter 'Overzicht'.

ha-ip pro setup overzicht


 

Stap 2

Vink de blokjes onder 'Gekoppeld' aan bij de VPS'en die je wil gebruiken.

Als je veel VPS'en gebruikt, kun je de opties 'VPS zoeken' gebruiken om op VPS-naam te zoeken, of op 'Alle beschikbare VPS'en' klikken om een overzicht van al je VPS'en te tonen.

ha-ip pro gekoppelde vpsen beheren


 

Stap 3

Ga terug naar de vorige pagina en klik nu op het tandwiel achter 'Instellingen HA-IP'.

ha-ip pro setup finished instellingen


 

Stap 4

Pas de instellingen van je HA-IP Pro aan als volgt:

  • Loadbalancing: bepaalt de loadbalancing methode. Je bent vrij in welke optie je hier kiest.
    cp ha-ip pro loadbalancing methode
  • Poort-instellingen: Voeg de volgende poort-instellingen toe:

    Naam: HTTP HA-IP poort: 80 Modus: PROXYVPS-poort: 80 SSL naar VPS: uit
    Naam: HTTPS HA-IP poort: 443 Modus: PROXYVPS-poort: 443 SSL naar VPS: uit

    We gebruiken PROXY-modus; Bij de PROXY-modus wordt al het verkeer inclusief alle informatie van de originele request doorgestuurd. In dit Knowledge Base-artikel leggen wij de verschillen tussen de doorstuurmodi verder uit.
    cp ha-ip tcp poortinstellingen
  • IPv6-configuratie: Je bent ook hier vrij in je keuze, zie deze handleiding voor meer informatie. VPS'en die gebruik maken van DHCP-netwerkconfiguratie kunnen de standaard optie 'IPv6 ingeschakeld' gebruiken.
    cp ha-ip ipv6 configuratie
  • TLS-modus: Om veiligheidsredenen raden we aan altijd de meest recente versie te gebruiken. Op moment van schrijven is dit 1.2.
    cp vps haip pro tls
  • Health checks: deze optie controleert of de poorten van de gekoppelde VPSen verkeer accepteren. Geef hier een waarde tussen de 2 en 5 seconden op. Je kunt optioneel ook gebruik maken van HTTP health checks, zie dit artikel.
    cp haip pro health check
  • Reverse DNS: Stel hier een subdomein in voor reverse DNS checks. Vergeet niet ook daadwerkelijk dit subdomein in je DNS-instellingen naar je HA-IP Pro te verwijzen.
    cp haip reverse dns

Ga nu verder met het volgende onderdeel. Je hoeft in je HA-IP Pro instellingen dankzij het gebruik van PROXY modus geen SSL-certificaat in te stellen.


DNS configureren

 

Stel de DNS-records van je domein in zoals in het voorbeeld hieronder.

  • De root/@-records en de subdomeinen server en www verwijzen naar je HA-IP Pro. Gebruik hiervoor het IPv4- en IPv6-address van je HA-IP Pro, zie stap 1 in de vorige paragraaf.
  • De records voor server1 en server2 zijn optioneel en verwijzen naar de gekoppelde VPS'en. In dit voorbeeld worden de subdomeinen server1 en server2 als hostname van de gekoppelde VPS'en gebruikt.

ha-ip pro dns example


Je VPS'en configureren

 

Voor de configuratie van je VPS'en richten we één VPS in. Vervolgens maak je een snapshot en zet je die terug op de tweede VPS. Tot slot pas je bij de tweede VPS je netwerkconfiguratie aan.

  • Voer de stappen hieronder uit met sudo, of als gebruiker met root-rechten.

 

Stap 1

Verbind met één van je gekoppelde VPS'en via SSH of de VPS-console in het TransIP-controlepaneel.


 

Stap 2

Installeer Nginx met PHP-ondersteuning op je VPS, zie bijvoorbeeld onze handleidingen voor Ubuntu 20.04 of CentOS 8 (vergeet niet poort 80 en 443 te openen in je firewall(s).

Installeer vervolgens een (Sectigo) SSL-certificaat op je server, zie deze handleiding.


 

 

Stap 3

 

 

Open het server block van je domein, bijvoorbeeld:

nano /etc/nginx/sites-available/example.com

 

Stap 4

Pas het server block aan zoals in dit voorbeeld. Vervang daarbij example.com door je eigen domeinnaam. Tip: gebruik SSH in plaats van de VPS-console, dan kun je de onderstaande code kopiëren en in het geopende bestand plakken.

server {

root /var/www/example.com/html;
index index.php index.html index.htm index.nginx-debian.html;

server_name example.com www.example.com;

location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;

}

   listen [::]:443 ssl ipv6only=on proxy_protocol;
   listen 443 ssl proxy_protocol;
   ssl_certificate /etc/pki/nginx/example.com/ssl-bundle.crt;
   ssl_certificate_key /etc/pki/nginx/example.com/certificate.key;
   ssl_prefer_server_ciphers on;
   ## OCSP Stapling
   resolver 127.0.0.1;
   ssl_stapling on;
   ssl_stapling_verify on;
   ssl_trusted_certificate /etc/pki/nginx/example.com/ssl-bundle.crt;
}

server {
    if ($host = example.com) {
        return 301 https://$host$request_uri;
    }

listen 80 proxy_protocol;
listen [::]:80 proxy_protocol;

server_name example.com www.example.com;
    return 404;

}
  • Met deze setup wordt HTTP verkeer naar HTTPS geredirect
  • Nginx heeft uitstekende PROXY-ondersteuning voor loadblance setups. De listen directive toevoeging  proxy_protocol is het enige dat nodig is in een al correct geconfigureert server block om PROXY-ondersteuning in te schakelen.

 

Stap 5

Sla de wijzigingen op en sluit het bestand (ctrl + x > y > enter). Herstart vervolgens Nginx om de wijzigingen te verwerken.

systemctl restart nginx

Krijg je een foutmelding? Controleer dan je configuratie met:

nginx -t

 

Stap 6

Maak een snapshot van je VPS en plaats die terug op de tweede VPS.


 

Stap 7

Controleer de netwerkconfiguratie van je tweede VPS, zie onze handleidingen voor Ubuntu 18.04, 20.04 en CentOS 7 en 8. Als deze geen gebruik maakt van DHCP voor IPv4 en/of IPv6 moet je hier het IPv4- en/of IPv6-adres van je tweede VPS statisch instellen.


Testen

 

Je setup is nu klaar! Een leuke manier om deze te testen is door bijvoorbeeld een test-bestandje aan te maken op je server, e.g. /var/www/example.com/html/test.html en daar de volgende inhoud in te plaatsen:

<!DOCTYPE html>
<html>
        <head>
                <title>HA-IP Sample</title>
        </head>
        <body>
                <p>Server 1</p>
        </body>
</html>

Op server 2 geef je het bestand dezelfde inhoud maar dan met de tekst Server 2. Je kunt nu de werking van je setup in je browser testen door naar de pagina test.html op je domein te gaan (e.g. example.com/test.html) en de pagina een aantal keer te herladen. Gebruik je geen round robin loadbalancing methode? Schakel dan op een van de VPS'en Nginx uit om de werking te testen.


 

Daarmee zijn we aan het eind gekomen van deze handleiding voor het opzetten van een redundante Nginx-setup met twee VPS'en en HA-IP Pro.

Mocht je aan de hand van dit artikel nog vragen hebben, aarzel dan niet om onze supportafdeling te benaderen. Je kunt hen bereiken via de knop 'Neem contact op' onderaan deze pagina.

Wil je dit artikel met andere gebruikers bespreken, laat dan vooral een bericht achter onder 'Reacties'.

Probeer BladeVPS drie maanden uit

Maak van jouw volgende website of applicatie een succes op BladeVPS. Probeer direct of een self-managed VPS iets voor jou is; de eerste drie maanden krijg je van ons :-)!

Start nu je 3 gratis maanden

Heb je ook een goed idee?

Stuur jouw idee in! Met genoeg stemmen komt jouw idee op onze wishlist!

Heeft dit artikel je geholpen?

Maak een account aan of log in om een beoordeling achter te laten.

Reacties

Maak een account aan of log in om een reactie te plaatsen.

Kom je er niet uit?

Ontvang persoonlijke hulp van onze supporters

Neem contact op