Redirect server
doel
Deze servers redirect-lb1 en redirect-lb2 zorgen er voor dat sites op zowel http als https geredirect worden naar de opgegeven URL.
Hiervoor maakt hij gebruik van de gratis SSL certificaten van Let's Encrypt, die 3 maanden geldig zijn.
hoe
redirect toevoegen
stap 1
Pas DNS records aan, zodat ze naar vip100.network.hobby.nl verwijzen of naar de IP adressen van die vip.
Wacht met de vervolg stappen totdat op ns1, ns2, ns3 en ns4 deze wijziging actief is.
stap 2
Op dbclus01-int is database genaamd 'redirect' met hierin een tabel 'redirects'.
Om een record toe te voegen is er een script op redirect-lb1-int aanwezig:
php /usr/local/hobbynet/bin/addredirect.php Gebruik: add-redirect.php <DomeinNaam> <DomeinPeriode> Geef de nieuwe domeinnaam die geredirect moet worden en url waarnaar hij geredirect moet worden
stap 3
Draai op redirect-lb1-int het script /usr/local/hobbynet/bin/update-apache.sh als root.
Hier wordt het certificaat aangevraagd, en de redirect actief gemaakt.
Deze stap kan je bewaren tot het laatst als je meerdere domeinen hebt.
redirect aanpassen
stap 1
Op dbclus01-int is database genaamd 'redirect' met hierin een tabel 'redirects'.
Pas hier voor het desbetreffende domein de redirect URL aan.
stap 2
Draai op redirect-lb1-int het script /usr/local/hobbynet/bin/updatenieuwecerts.sh als root.
De Apache config wordt aangepast en herladen.
redirect verwijderen
moet nog script voor gemaakt worden nu is met de hand eerst het certificaat revoken:
certbot revoke --cert-path /etc/letsencrypt/domeinnaam/cert.pem
daarna haal je uit de database het desbetreffende domein
scripts
Alle scripts draaien op redirect-lb1-int.
/usr/local/hobbynet/bin/update-apache.sh
Dit script zet eerst apache uit op de redirect-lb2 en lb3.
Daarna gaat kijken of er certificaten vernieuwd moeten worden, en vernieuwd deze zo nodig.
Daarna kijkt hij over nieuwe certificaten nodig zijn en vraagt die aan.updatecerts.php
Daarna maakt hij nieuwe apacheconfiguratie.maakconfig.php
Herstart locale apache om de de nieuwe apache configuratie te activeren.
Kopieert deze configuratie naar redirect-lb2 en lb3 en start daar apache weer.
/usr/local/hobbynet/lib/updatecerts.php
Dit script kijkt in de database of er nog certificaten moeten worden aangevraagd zo ja vraagt hij deze aan.
/usr/local/hobbynet/lib/maakconfig.php
Dit script maakt aan de hand van de database een apache configuratie file aan.
/usr/local/hobbynet/lib/addredirect.php
Met dit script kan je heel eenvoudig een redirect toevoegen aan de database vanaf de cli
/usr/local/hobbynet/bin/addredirect.sh
simpel script dat het php script /usr/local/hobbynet/lib/addredirect.php aanroept:
Gebruik: addredirect.sh <domeinnaam> <redirecturl> <static= optioneel standaard 0>
database
op Dbclus01-int staat database redirects, met 1 tabel namelijk redirects. de tabel layout is als volgt en wijst zich van zelf :
velden tabel redirects
id | Het id nr (primare index) |
domeinnaam | de domein naam die geredirect moet worden |
tech-c | redirect url waar na geredirect moet worden incl http:// of https:// |
Cert aangemaakt | Is het certificaat voor dit domein aan gemaakt. standaard 0 dan maakt certbot een nieuwe certificaat aan |
Static redirect | Moet de redirect static of dynamic zijn |
Loadbalancer
De loadbalancer configuratie is iets anders dan standaard.
Op lb1 wordt niet getest of Apache draait ivm het aanvragen / updaten van Let's Encrypt certificaten (dat script neemt tijdelijk poort 80 of 443 over). Daarom wordt ook bij toevoegen van redirects eerst Apache gestopt.
Dit is ook de reden waarom je niet in productie sites Let's Encrypt gebruikt.