Je to technika, která umožňuje na jednom webovém serveru hostit více domén najednou.
- přichází s 1.1
- direktiva
<VirtualHost>
IP-based virtual hosting
- pro každou hostovanou doménu je vyhrazena nesdílená IP adresa nebo port (ale většinou ty IP adresy volné nemáme)
- je možné použít i v protokolu HTTP/1.0
- pokud se nenajde odpovídající IP adresa, tak se použije
_default_
, pokud není default, tak se použije nastavení hlavního serveru
<VirtualHost 172.20.30.40>
DocumentRoot "/www/example1"
ServerName www.example.com
</VirtualHost>
<VirtualHost 172.20.30.50>
DocumentRoot "/www/example2"
ServerName www.example.org
</VirtualHost>
Name-based virtual hosting
- na jedné IP adrese/portu se hostuje více domén - rozlišují se podle jména serveru (
ServerName
neboServerAlias
) - musí se implementovat mechanismus pro rozlišování jednotlivých domén
- nebo můžeme použít
<VirtualHost *:80>
, který bere všechny IP adresy a rozhoduje se podleServerName
neboServerAlias
<VirtualHost IP:PORT>
ServerName B
DocumentRoot /var/www/html/x
</VirtualHost>
<VirtualHost _default_>
ServerName C
DocumentRoot /var/www/html/y
</VirtualHost>
ServerName A
DocumentRoot /var/www/html/z
Kombinace
Jednotlivé techniky lze kombinovat. Tj. můžu mít 2 VirtualHosty na stejnou IP adresu a pak u nich mít rozdílný
ServerName
. Všechny příklady najdu zde: VirtualHost Examples - Apache HTTP Server Version 2.4
Výběr virtuálního hostitele
- pokud nám sedí IP adresa, tak se koukáme na ServerName a ServerAlias, jestli nám to nematchne hlavičku
Host