Home Map Index Zoek Nieuws Archieven Links Over LF
[Hoofd-balk]
[Voet-balk]
Dit artikel is beschikbaar in: Nederlands  English  Castellano  Deutsch  Francais  Italiano  Turkce  Korean  
[Foto van de Auteur]
door

Over de auteur:
Ik woon en werk in Zwitserland als web- en Unixbeheerder. Mijn interesses zijn onder andere Linux, Unix, Perl, Apache en GPL-software. Meer informatie over mijzelf is te vinden op mijn homepagina
Inhoud:

Hergebruik van IP-adressen met Apache

[Illustratie]

Kort:

Dit artikel legt uit hoe meerdere webservers kunnen worden bediend met het gebruik van slechts één IP-adres met Apache op Unix/Linux. Aangenomen wordt dat de lezer enigszins op de hoogte is met Apache, DNS en Linux.
Doelgroep voor dit artikel zijn ISP's, systeembeheerders en eenieder met interesse voor dit onderwerp.



 

Waarom IP-adressen hergebruiken?

Er zijn een aantal redenen aan te voeren voor het hergebruik van IP-adressen.
  1. Je komt meestal al snel IP-adressen tekort
  2. Je hebt maar één IP-adres (bij mij het geval)
  3. Het gebruik van meerdere adressen vergt meer administratie en beheer
 

Hoe een IP-adres opnieuw te gebruiken

Met Apache is het simpel om meerdere domains te bedienen met een enkel IP- adres.
Voor dit artikel nemen we aan dat het IP-adres 192.168.1.1 is en de naam van de machine hometranet.home. Voeg gewoon onderstaande regel toe aan je httpd.conf bestand.

NameVirtualHost 192.168.1.1:80

Vervolgens voegen we drie verzonnen servers toe met hetzelfde IP-adres.
#Machine voor Unix bestanden
<VirtualHost 192.168.1.1:80>
        ServerName      unix.hometranet.home
        DocumentRoot    /www/unix/html
        ScriptAlias     /cgi-bin/ /www/unix/cgi-bin/
        TransferLog     /www/unix/logs/access_log
        ErrorLog        /www/unix/logs/error_log
</VirtualHost>

#Machine voor Perl bestanden
<VirtualHost 192.168.1.1:80>
        ServerName      perl.hometranet.home
        DocumentRoot    /www/perl/html
        ScriptAlias     /cgi-bin/ /www/perl/cgi-bin/
        TransferLog     /www/perl/logs/access_log
        ErrorLog        /www/perl/logs/error_log
</VirtualHost>


#Hierop zetten we gave Apache programma's
<VirtualHost 192.168.1.1:80>
        ServerName      apache.hometranet.home
        DocumentRoot    /www/apache/html
        ScriptAlias     /cgi-bin/ /www/apache/cgi-bin/
        TransferLog     /www/apache/logs/access_log
        ErrorLog        /www/apache/logs/error_log
</VirtualHost>

Aldus hebben we hiermee eenvoudig 3 verschillende, verzonnen, machines onder beheer.

Voeg vervolgens CNAMES of A records toe aan het zonebestand van je nameserver voor alle drie de machines en vergeet niet het serienummer op te hogen :) Voor bijvoorbeeld mijn bestand /var/named/hometranet.home.fwd zou ik het volgende toevoegen:

perl.hometranet.home.   IN      A       192.168.1.1
apache.hometranet.home. IN      A       192.168.1.1
unix.hometranet.home.   IN      A       192.168.1.1
Let op: als je de machine een andere naam geeft dan geconfigureerd dan zal alleen de eerstgenoemde machine reageren.
Vóór versie 1.3 van Apache was het de laatstgenoemde machine.
Voor dit voorbeeld: als de machine madmag heet dan zal de aanroep http://madmag.hometranet.com hetzelfde zijn als het aanroepen van unix.hometranet.home.  

Het gebruik van wildcards en dynamische machinenamen

Dit is het leuke gedeelte. Apache staat het gebruik van wildcards toe in namen van machines.
Dit betekent dat het gebruik van een naam als *.home.hometranet.home reacties oplevert van machines als user1.home.hometranet.home, user2.home.hometranet.home, user3.home.hometranet.home enz.
Voorbeeld:
#host for users
<VirtualHost 192.168.1.1:80>
        ServerName      home.hometranet.home
        ServerAlias     *.home.hometranet.home
        DocumentRoot    /www/home/html
        TransferLog     /www/home/logs/access_log
        ErrorLog        /www/home/logs/error_log
</VirtualHost>
en een toevoeging in het named zone bestand:
*.home.hometranet.home.  IN      A       192.168.1.1
Let op: deze truc gaat niet op als je gebruik maakt van Microsoft DNS Server. Kennelijk weigert deze wildcards in machinenamen (maar die gebruik je niet, toch?).
Op deze manier heb ik eens een klein systeem gemaakt die gebruikers in staat stelt hun CV aan een database toe te voegen waarbij, met gebruikmaking van bovenstaande truc, je de CV kon raadplegen via hunUserNaam.cv.developer.ch.  

Mijn configuratiebestand met verzonnen machines

Hier tref je een wat uitgebreider configuratiebestand die ik uit mijn httpd.conf bestand heb gehaald. Deze staat op mijn server.

Om het bestand aan je httpd.conf toe te voegen kun je de include opdracht gebruiken:

include "/etc/vhosts.conf"
 

Verdere informatie

[Apache name-based Virtual Host Support]
http://www.apache.org/docs/vhosts/name-based.html
[Apache Virtual Host documentation]
http://www.apache.org/docs/vhosts/index.html
[An In-Depth Discussion of Virtual Host Matching]
http://www.apache.org/docs/vhosts/details.html
 

Talkback voor dit artikel

Elk artikel heeft zijn eigen talkback pagina. Daar kan je commentaar geven of commentaar van anderen lezen:
 talkback pagina 

Site onderhouden door het LinuxFocus editors team
© Atif Ghaffar, FDL
LinuxFocus.org

Klik hier om een fout te melden of commentaar te geven
Vertaling info:
en -> --
en -> nl

2001-05-22, generated by lfparser version 2.8