Denne artikel omhandler opsætning af virtualhosts i apache 1.3 på linux. Der er også et afsnit om forskellene mellem opsætningen på linux og windows.
Frederik Sørensen 1/3-2005
1)Hvad er virtualhosts?
2)Hvad bruger man dem til?
3)Hvordan laver man dem selv på ens egen apache server?
4)Mulige faldgrupper
5)Kan det bruges på windows?
6)Referencer
1) og 2)
Virtualhosts er en måde at dele en webserver op på, så man kan have flere domæner på samme webserver som fx. http://www.patch.dk og http://forum.patch.dk hvor hvert domæne har sin egen mappe på serveren.
Teknisk forklaring på virtualhosts. Med HTTP 1.0 protokollen kunne man kun have én hjemmeside pr. server. Dette var fordi browseren ikke, fortalte serveren hvilket domæne, den ville have filer fra. Derfor kunne serveren selvfølgelig ikke vide hvilken mappe, den skal hente filerne fra.
Fx
som vi kan se fortæller browseren ikke hvilket domæne, den vil have filer fra.
Denne mindre heldige feature i HTTP protokollen blev ændret med HTTP 1.1
Host: www.pc-geeks.dk
som vi kan se, fortæller browseren med HTTP 1.1 protokollen hvilket
domæne, den vil have filer fra hvilket gør, at man kan have uendeligt
mange domæner eller virtuellehosts på en webserver.
3)Hvordan laver man dem selv på ens egen apache server?
Hvis man selv vil lave virtuellehosts på ens egen server skriver man i bunden af filen.
Eks. på to virtuellehosts.
DocumentRoot /var/www/patch
ServerName patch.dk
ServerAlias www.patch.dk
</Virtualhost>
<Virtualhost>
DocumentRoot /var/www/forum
ServerName forum.patch.dk
ServerAlias www.forum.patch.dk
</Virtualhost>
DocumentRoot er den mappe som ens filer ligger i.
ServerName er domæne navnet.
ServerAlias skal ikke nødvendigvis være der, men bruges hvis man vil have flere domæner til at pege på den samme virtuellehost. Fx www.patch.dk og patch.dk er den samme hjemmeside.
Man kan have ligeså mange <VirtualHost></VirtualHost> blokke, som man har lyst til.
Den virtualhost der står øverst i configfilen, fungerer som en slags default, dvs. hvis man har test.patch.dk til at pege på ens webserver, men ikke har en virtuelhost, som fanger den så vil default siden blive vist i stedet. I eksemplet vil det være patch.dk, der vil fange den.
En fordel ved virtuellehosts er, at man kan lave en struktur i ens mapper på serveren, så man ikke har en hovedmappe, som alle filer ligger i. En oplagt måde vil derfor være at lave sin filstruktur, så man har en /var/www/ mappe, som er en slags overordnet mappe, hvor man så har en mappe til hver virtualhost fx /var/www/patch, /var/www/forum osv. så man ikke blander ens virtuellehosts sammen, hvilket godt kan give noget rod, men mere om det senere.
Når man har rette sin configfil skal apache restartet det gøres lettes ved at køre kommandoen apachectl restart fra sin konsol.
4) Mulige faldgrupper
Denne sektion vil blive udvidet efterhånden, som det går galt for folk, fordi jeg ikke har forklaret det godt nok .
Hvis man lægger virtuellehost inden i hinandensmapper fx 1) /var/www/patch og 2)/var/www/patch/forum
1) og 2) er hver deres virtuellehost. Her kan man få problemer med bl.a cookies, fordi man både kan komme til forum delen fra www.patch.dk/forum
og fra forum.patch.dk, begge dele vil vise den side som er
forventet, men fordi de to ”veje” teknisk set er helt forskellige
hjemmesider, kan man ikke dele cookie data mellem dem, så hvis man
logger ind fra fx forum.patch.dk og bageefter kommer ind på www.patch.dk/forum vil man ikke længere være logget ind.
En anden grund til ikke at blande virtuellehosts på den måder er at man
hurtigt kan miste overblikket over, hvor ens sider er og ikke er.
5) Kan det bruges på windows?
Apache er en multiplaform webserver og kan køre på mange operativ systemer, Linux og Windows er bare nogen af dem.
Disse eksempler kan meget let overføres til en apache server på
windows, eneste ting man skal tage højde for er at windows mapper
skrives som c:\mappe og ikke /mappe som på unix.
6)Referencer
HTTP protokollen http://www.apacheweek.com/features/http11
Virtuellehosts i apache 1.3 http://httpd.apache.org/docs/vhosts/