DNS en Virtual Hosts Theorie
DNS
Computers op het internet zijn verbonden via netwerken en om te weten welk netwerkpakketje naar welke computer moet worden en IP adressen gebruikt. Elke computer die is verbonden met een netwerk heeft een IP adres. Dit zijn nummers en die zijn lastig te onthouden. Daarom is er een soort "telefoonboek-systeem" waarbij een naam van een computer of een systeem kan worden omgezet naar een nummer. Dit heet systeem heet DNS. DNS staat voor Domain Name Server en het zorgt ervoor dat een naam van bijvoorbeeld een web site wordt opgezet naar een ip nummer.
Host file
Op Linux en Windows heb je een host file. Op Linux staat deze file in de /etc directory en onder Windows staat deze file in de folder c:\windows\system32\drivers\etc\.
De host file is een soort DNS systeem dat alleen werkt voor de machine waar die op staat. Stel je wilt naar ubuntu.local. In het grote DNS systeem van internet bestaat deze site niet, maar in je eigen host file kun je deze naam wel definiëren. Jouw eigen machine kijkt eerst of die een naam kan vinden in de host file. Als dat zo is dan gebruikt jouw machine het nummer zoals dat in de host file staat. Staat er niets in de host file dan wordt er pas aan DNS gevraagd of er een nummer bekend is.
De host file ziet er eenvoudig uit, bijvoorbeeld:
127.0.0.1 localhost
127.0.0.1 mysite
De eerste regel staat bijna in elke host file. Deze rgel is een mapping van localhost naar 127.0.0.1. Zoals je weet wijst het ip nummer 127.0.0.1 altijd naar 'zichzelf'. Dat is een afspraak. In dit voorbeeld is mysite ook gemapped op 127.0.0.1. Of je dus localhost of mysite intypt in de browser maakt dan niet uit.
- Wat is DNS?
- Wat is de host file onder Windows en hoe kun je die aanpassen?
- Waarom is het gevaarlijk als iemand zo maar jouw host file zou kunnen aanpassen?
Deze vragen en meer, worden in de onderstaande video beantwoord:
Virtual Host
In de meeste eenvoudige vorm staat elke web site op zijn eigen server. Voor de grote sites is dat ook zo. Het is voor grote sites zelfs zo dat er vaak meerdere servers worden gebruikt voor één site. Facebook draait op 30 000 servers (schatting 2019). Hoeveel servers er aan een web site hangen hangt dus af van de hoeveelheid gebruikers.
Als je weinig gebruikers hebt dan kun je ook eenvoudig meerdere web sites op één server draaien. Om dat te kunnen doen moeten we zogenaamde Virtuele hosts opzetten.
In dit plaatje zie je drie sites die allemaal op éém server draaien. Hoe doen we dat?
Allereerst moeten we ervoor zorgen dat alle drie de (domein)namen naar dezelfde server verwijzen. Laten we ervan uitgaan dat de server één IP adres heeft. Dat betekent dat we de drie servers alle drie aan hetzelfde IP-adres koppelen.
Dat kan via DNS, maar als we moeten testen als developer is het goedkoper en sneller om deze drie domeinnamen via onze host file allemaal naar hetzelfde ip-adres te laten verwijzen.
De server krijgt nu het verzoek om een pagina te tonen, maar hoe weet de server nu welke pagina hij moet tonen? Dat hangt af van de domeinnaam die wordt gebruikt. als je www.dreamer.com intypt dan moet de webserver een ander pagina laten zien dan wanneer je www.broken.com intypt.