Tímto dílem uzavírám krátký seriál, jenž měl za úkol provést vás konfigurací www serveru Apache. Poslední částí, kterou ještě zbývá osvětlit, jsou takzvané „Virtual Hosts“ umožňující definovat několik virtuálních serverů na jednom fyzickém stroji.

Sekce 3 – Virtual Hosts

Třetí sekce definuje jednotlivé virtuální servery, které se tváří, jako že běží na jedné adrese, ale díky adrese v hlavičce požadavku lze rozlišit, kam se má dotaz směřovat. Tato sekce vznikla v průběhu vývoje z potřeby šetřit adresní prostor IP, neboť před zavedením virtuálních hostů bylo nutné pro každý www server definovat jednu IP adresu, což by bylo značně nepohodlné například v případě serveru hostujícího stovky různých domén.

Pro zjednodušení pochopení filozofie virtuálních serverů je možné říci, že existuje direktiva <VirtualHost> tvořící kontejner, do kterého se zabalí definice podobně, jako se definuje nastavení základního serveru (viz sekce 2). Pro použití virtuálních serverů je nutné definovat alespoň jednu IP adresu pomocí direktivy <NameVirtualHost>, která jediná stojí mimo kontejnery <VirtualHost>.

Tip pro ty, kteří chtějí v klidu domova a bez poplatků za telefon vytvářet více serverů zároveň a odkazovat se na ně ve svém prohlížeči jednotlivými adresami typu http://mujserver/ a http://jinyserver/ nebo http://pracovni/. Pro vás je ideální nakonfigurovat si tyto servery jako virtuální a nastavit si v souboru hosts přímo jejich adresy. Pokud pracujete v rámci lokální sítě, můžete si nadefinovat host alias pro svoji IP adresu, jinak můžete zkusit přiřadit tato jména k základní adrese http://localhost/ s IP adresou 127.0.0.1

NameVirtualHost 12.34.56.78
NameVirtualHost 12.34.56.78:80

Deklarace IP adresy a portu (ten je volitelný), na který se připojí a naslouchá virtuální server na příchozí požadavky.

<VirtualHost 12.34.56.78:80>
   # deklarace konfigurace konkrétního serveru
</VirtualHost>

Kontejner obsahující nastavení pro příslušný virtuální server. Minimální (resp. doporučené) požadované direktivy, které je nutné do tohoto kontejneru uvést jsou ServerName, DocumentRoot, ServerAdmin, ErrorLog, CustomLog. Je vhodné nadefinovat též příslušné konfigurace pro Directory a případně i Port pokud má virtuální server naslouchat i jinde. Pozor na možnou provázanost s BindAddressListen direktivami.

Podle ServerName se rozlišuje, který server bude zpracovávat dotaz obsahující shodné jméno v hlavičce požadavku.

Existuje též speciální, výchozí deklarace virtuálního serveru pro základní dotazy, které se nevyřídí jinými virtuálními servery:

<VirtualHost _default_:*>
   # deklarace konfigurace základního virtuálního serveru
</VirtualHost>

Použitá literatura

Samozřejmě, že jsem na všechny věci zde uvedené, nepřišel jen tak, tudíž ke každému správnému manuálu patří i seznam použitých zdrojů, kde si navíc můžete rozšířit obzory o věci, které jsem zde neuvedl a nebo příliš zjednodušil.

[1] Apache – dokumentace (www.apache.org)
[2] Apache – Správa webového serveru, Ben Laurie & Peter Laurie, O’Reilly™ (česky u Computer Press)

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Žádný příspěvek v diskuzi

Odpovědět