Apache VirtualHost se používá ke spuštění více webových stránek na stejném serveru Apache. Je to úžasná funkce webového serveru Apache 2 pro nasazení webových stránek s vysokou hustotou na jediném serveru. Apache má dva typy konfigurace VirtualHost, VirtualHost založený na IP a VirtualHost založený na názvu.
VirtualHost založený na IP:Ve virtuálním hostiteli založeném na IP má server Apache více IP adres a na základě IP adresy odpovídá různými webovými stránkami.
Obr. 1: VirtualHost založený na Apache IP.
VirtualHost založený na názvu: Ve virtuálním hostiteli založeném na názvu má server Apache jednu IP adresu a několik názvů domén nakonfigurovaných pro každý web. Na serveru DNS je každému z těchto názvů domén přiřazena adresa IP serveru Apache. V závislosti na tom, jaký název domény klient použil, server vrací různé webové stránky.
Obr. 2: VirtualHost založený na názvu Apache.
V tomto článku vám ukážu, jak nakonfigurovat VirtualHost založený na názvu Apache. Pro ukázku budu používat Ubuntu 18.04 LTS. Ale mělo by to fungovat na jakékoli moderní distribuci Linuxu s malými nebo žádnými změnami. Takže, pojďme začít.
Webový server Apache 2 je k dispozici v oficiálním úložišti balíčků Ubuntu 18.04 LTS. Můžete jej tedy snadno nainstalovat pomocí správce balíčků APT.
Nejprve aktualizujte mezipaměť úložiště balíčků APT pomocí následujícího příkazu:
Nyní spusťte následující příkaz k instalaci webového serveru Apache 2:
$ sudo apt nainstalujte apache2
Nyní pokračujte stisknutím ya poté stisknutím .
Měl by být nainstalován webový server Apache 2.
Nyní musíte nakonfigurovat server DNS tak, aby mapoval názvy domén, které chcete použít pro VirtualHost, na IP adresu vašeho serveru Apache.
IP adresu svého serveru Apache můžete zjistit pomocí následujícího příkazu:
Jak vidíte, IP adresa v mém případě je 192.168.21.166. U vás to bude jiné. Takže ji od této chvíle nahraďte svou.
Pokud se chcete naučit, jak nakonfigurovat Apache VirtualHost lokálně, můžete použít soubor /etc/hosts pro místní překlad DNS/názvů.
Chcete-li nakonfigurovat místní překlad DNS, otevřete soubor /etc/hosts s nano takto:
Nyní do souboru přidejte řádek označený na snímku obrazovky níže. Poté stiskněte + x a následně y a soubor uložte.
Nyní by překlad místních názvů měl fungovat.
Chci uchovávat všechna data webových stránek mého virtuálního hostitele Apache v konkrétním adresáři /www. Zde chci vytvořit adresář pro každého uživatele. Každý uživatel bude mít svůj vlastní adresář public_html/ a logs/.
Například pro 3 uživatele bob (example1.com), alice (example2.com), linda (example3.com) je adresářová struktura následující:
/www- example1.com/- www/- public_html/- index.html- logs/- example2.com/- www/- public_html/- index.html- logs/- example3.com/- www/- public_html/- index.html- logs/
Snadný způsob, jak to udělat, je vytvořit šablonu nebo kostru adresáře a vložit tam adresářovou strukturu. Poté pomocí tohoto základního adresáře vytvořte každého uživatele.
Nejprve zkopírujte obsah výchozího adresáře kostry /etc/skel do jiného adresáře /etc/skel-www takto:
$ sudo cp -rv /etc/skel /etc/skel-www
Nyní přejděte do nového adresáře kostry následovně:
Potom vytvořte požadovanou adresářovou strukturu uvnitř adresáře kostry následovně:
$ sudo mkdir -p www/{public_html,logs}
Pokud chcete, můžete také vytvořit výchozí soubor index.html v adresáři public_html/.
$ echo "
Nyní vytvořte adresář /www pomocí následujícího příkazu:
Nyní můžete vytvořit uživatele bob pro www.example1.com následovně:
$ sudo useradd --create-home --home-dir /www/example1.com --shell/bin/bash --gid www-data --skel /etc/skel-www bob
Stejným způsobem vytvořte uživatelskou alice pro www.example2.com následovně:
$ sudo useradd --create-home --home-dir /www/example2.com --shell /bin/bash--gid www-data --skel /etc/skel-www alice
Znovu vytvořte uživatele linda pro www.example3.com následovně:
$ sudo useradd --create-home --home-dir /www/example3.com --shell /bin/bash--gid www-data --skel /etc/skel-www linda
Zde jsem přiřadil primární skupinu každého uživatele k www-data. Ve výchozím nastavení běží server Apache jako tato skupina. Pokud bych to neudělal, server Apache nebude mít přístup k souborům v adresáři public_html/ a nebude moci vytvářet soubory protokolu v adresáři logs/.
Nyní jste připraveni nakonfigurovat Apache VirtualHost pro 3 uživatele bob (www.example1.com), alice (www.example2.com) a linda (www.example3. com).
Výchozí konfigurační adresář webu Apache na Ubuntu je /etc/apache2/sites-available.
Nyní přejděte do adresáře /etc/apache2/sites-available/ následovně.
$ cd /etc/apache2/sites-available/
Nejprve vytvořte nový konfigurační soubor pro bob www.example1.com.conf následovně:
$ sudo nano www.example1.com.conf
Měl by být otevřen textový editor.
Nyní zadejte následující řádky.
ServerName example1.comServerAlias www.example1.comDocumentRoot "/www/example1.com/www/public_html"<Directory "/www/example1.com/www/public_html">Možnosti -FollowSymLinks +MultiViews + IndexyAllowOverride allVyžadovat vše udělenoErrorLog "/www/example1.com/www/logs/error.log"CustomLog "/www/example1.com/www/logs/access.log" dohromady
POZNÁMKA: Změňte tučné texty podle svých požadavků.
Konfigurační soubor www.example.com.conf by měl nakonec vypadat následovně. Stiskněte + x a poté y a uložte konfigurační soubor.
stačí zkopírovat konfigurační soubor pro bob (www.example1.com.conf) a provést ty malé změny, které jsou potřeba.
Zkopírujte konfigurační soubor bob pro alice a lindu pomocí následujících příkazů:
$ sudo cp -v www.example1.com.conf www.example2.com.conf$ sudo cp -v www.example1.com.conf www.example3.com.conf
Nyní upravte konfigurační soubor alice následovně:
$ sudo nano www.example2.com.conf
Nyní změňte všechny výskyty příkladu1 na příklad2. Poté soubor uložte.
Udělejte totéž pro lindu.
$ sudo nano www.example3.com.conf
Změňte všechny výskyty příkladu1 na příklad3 a soubor uložte.
Nyní deaktivujte výchozí konfiguraci webu Apache následovně:
$ sudo a2dissite 000-default.conf
Nyní povolte konfigurace VirtualHost www.example1.com.conf, www.example2.com.conf, www.example3.com.conf následovně:
$ sudo a2ensite www.example1.com.conf www.example2.com.conf www.example3.com.conf
Nakonec restartujte službu Apache následovně:
$ sudo systemctl restartujte apache2
Nyní zkuste přejít na webové stránky www.example1.com, www.example2.com, www.example3.com
Jak vidíte, všechny tyto webové stránky fungují podle očekávání.
POZNÁMKA: Změnil jsem výchozí stránku index.html pro každý web tak, aby se pro každý web pro účely testování trochu lišila. V opačném případě nebudete schopni zjistit, zda konfigurace VirtualHost funguje nebo ne.
Takže takto konfigurujete Apache VirtualHost založený na názvu na Ubuntu 18.04 LTS. Děkuji za přečtení tohoto článku.
PREV: Připojení k serveru sestav v Management Studio - SQL Server...
NEXT: Základy reportovacích služeb: Přehled a instalace – jednoduchá ...