Mange subdomæner, opret en undermappe og får pludselig et nyt subdomæne

Hvis du har en lokal webserver, eller et lign. behov for nemt at kunne oprette mange webhoteller så er det her måske løsningen. Du kan simpelthen oprette dig et helt nyt webdir så nemt som ved at oprette en ny mappe.

Der findes et modul til Apache som lader os angive en virtuel document-root, og denne kan defineres ud fra hele eller dele af domænenavnet. Lad os først aktivere dette modul:

root@lab1:~# a2enmod vhost_alias 
Enabling module vhost_alias.
Run '/etc/init.d/apache2 restart' to activate new configuration!
root@lab1:~# /etc/init.d/apache2 restart
Restarting web server: apache2 ... waiting .

Det er nemmest at få til at virke på en server med kun én virtualhost, men alternativt skal du bruge din default host-definition, og den vil selvfølgelig kun matche sider der ikke allerede er matchet.

Jeg lavet følgende virtualhost, dette er samtidig den eneste på systemet:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName v1.dk
        VirtualDocumentRoot     /var/www/%1
</VirtualHost>

V1.dk er et af mine test-domæner, og i dette tilfælde har jeg oprettet et såkaldt stjernealias, det ser således ud (i en BIND Zone fil):

$ORIGIN v1.dk.
$TTL 3600
@     IN     SOA    ns1.mikjaer.com.     kontakt.mikjaer.com. (
                    1336756293 ; serial
                    28800      ; refresh after 6 hours
                    7200       ; retry after 1 hour
                    604800     ; expire after 1 week
                    3600 )    ; minimum TTL of 1 day

$TTL 300
@                                IN NS       ns1.mikjaer.com.
@                                IN NS       ns2.mikjaer.com.
@                                IN A        10.10.10.10
*                                IN A        10.10.10.10

Og det som stjernealiaset gør er simpelthen at ligegyldigt hvad jeg skriver foran .v1.dk vil det ramme den samme server, dvs. at både foo.v1.dk og bar.v1.dk vil ramme min lab1-server, derfor opretter jeg nu to mapper til formålet, og genstarter Apache:

root@lab1:~# mkdir /var/www/foo
root@lab1:~# mkdir /var/www/bar
root@lab1:~# echo This is foo > /var/www/foo/index.html
root@lab1:~# echo This is bar > /var/www/bar/index.html
root@lab1:~# /etc/init.d/apache2 restart
Restarting web server: apache2 ... waiting .

Og nu kan jeg gå ind på hhv. foo.v1.dk og bar.v1.dk og se beskederne:

This is foo

og

This is bar

Når først den nye config fil er lavet og apache reloaded kan du oprette alle de mapper og dermed subdomæner du vil:

root@lab1:~# mkdir /var/www/new
root@lab1:~# echo Jeg er ny > /var/www/new/index.html

Resultatet i en browser:

Jeg er ny

Håber i får glæde af det her indlæg, det ved jeg ihvertfald at jeg selv gør, jeg har nemlig lige haft en kunde der har efterspurgt netop den her konfiguration 🙂

Dette indlæg blev udgivet i Apache, Knowledge Base, Old Base. Bogmærk permalinket.

Skriv et svar