Co je virtuální hostitel Apache?
Virtuální hostitel umožňuje provozovat více webových stránek z jednoho fyzického serveru nebo virtuálního privátního serveru. Na Apache existují dva typy virtuálních hostitelů:
- Virtuální hostování na bázi IP – každý jednotlivý web na serveru Apache používá jinou, jedinečnou IP adresu.
- Virtuální hostitelé podle jména – umožňuje přidat více domén pomocí jedné IP adresy.
Tento tutoriál vám ukáže, jak nastavit virtuální hostitele Apache v systému Ubuntu 18.04.
Předpoklady
- Okno příkazového řádku/terminálu
- Uživatel s rootem nebo sudo privilegia
- Doména směřující na IP veřejného serveru
- Webový server Apache na Ubuntu nainstalovaný, nakonfigurovaný a aktivní
- Firewall povolen
Nastavení více domén na jedné IP adrese
Apache Virtual Host vám umožňuje maximalizovat vaše zdroje při nastavování webu. S tímto výkonným softwarem můžete používat jeden server a jedinou IP adresu k hostování několika různých domén.
Než budete moci nakonfigurovat virtuální hostitele Apache, musíte nainstalovat webový server Apache. Chcete-li to provést, spusťte příkaz:
sudo apt-get install apache2
Pokud máte nějaké problémy s nastavením webového serveru, podívejte se na náš podrobný návod k instalaci Apache na Ubuntu.
Jak nastavit virtuálního hostitele založeného na názvu
Na základě jména virtuální hosting umožňuje klientovi nahlásit serveru název hostitele jako prvek HTTP hlavičky. Tato funkce znamená, že jeden počítač může hostit více webových stránek sdílejících stejnou IP adresu.
Krok 1:Vytvořte adresářovou strukturu
Každý virtuální hostitel musí mít adresář pro ukládání dat virtuálního hostitele. Vytvořte adresáře a adresářovou strukturu na následujícím umístění /var/www . V našem příkladu jsme vytvořili phxnap1.com a phxnap2.com adresáře, jeden pro každý název domény.
1. Zadejte následující příkaz a nahraďte vzorovou doménu svými názvy domén:
sudo mkdir -p /var/www/phxnap1.com/public_html
sudo mkdir -p /var/www/phxnap2.com/public_html
V rámci adresářů jsme vytvořili i public_html . Tyto adresáře budou ukládat soubory webových stránek pro domény.
2. Dále vytvořte ukázku index.html stránku pro každou doménu pomocí nano nebo váš oblíbený textový editor. Začněte s první doménou:
nano /var/www/phxnap1.com/public_html/index.html
3. Přidejte následující ukázkový kód HTML:
<html>
<head>
<title>Welcome to phoenixNAP 1!</title>
</head>
<body>
<h1>Well done! Everything seems to be working on your first domain!</h1>
</body>
</html>
4. Uložte a ukončete soubor.
5. Dále vytvořte vzorovou stránku pro druhou doménu:
nano /var/www/phxnap2.com/public_html/index.html
6. Přidejte do souboru následující řádky:
<html>
<head>
<title>Welcome to phoenixNAP 2!</title>
</head>
<body>
<h1>Well done! Everything seems to be working on your second domain!</h1>
</body>
</html>
7. Uložte a ukončete druhý soubor HTML.
8. Chcete-li předejít jakýmkoli problémům s oprávněními, změňte vlastnictví kořenového adresáře vašeho dokumentu na www-data . V tomto případě je užitečný příkaz chown:
sudo chown –R www-data:www-data /var/www/phxnap1.com
sudo chown –R www-data:www-data /var/www/phxnap2.com
Nyní jste úspěšně změnili vlastnictví adresáře na uživatele Apache .
Krok 2:Vytvořte konfigurační soubor virtuálního hostitele
Konfigurační soubory virtuálního hostitele Apache jsou uloženy v /etc/apache2/sites-available adresář.
1. Chcete-li vytvořit základní konfigurační soubor pro svou první doménu, zadejte informace o doméně do příkazu:
sudo nano /etc/apache2/sites-available/phxnap1.com.conf
2. Přidáním následujícího konfiguračního bloku vytvoříte základní konfigurační soubor. Tento příklad používá první testovací doménu phxnap1.com . Ujistěte se, že jste pro svůj web zadali správnou doménu:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName phxnap1.com
ServerAlias www.phxnap1.com
DocumentRoot /var/www/phxnap1.com/public_html
ErrorLog ${APACHE_LOG_DIR}/phxnap1.com-error.log
CustomLog ${APACHE_LOG_DIR}/phxnap1.com-access.log combined
</VirtualHost>
- Název serveru – představuje doménu
- Alias serveru – představuje všechny ostatní domény, jako jsou subdomény
- DocumentRoot – adresář používaný Apache k poskytování doménových souborů
- ErrorLog, CustomLog – určuje umístění souborů protokolu
Neexistuje žádný zavedený formát. Nicméně pojmenování konfiguračních souborů na základě názvu domény je „nejlepší praxe“.
4. Jakmile upravíte konfigurační soubor pro první doménu, opakujte proces pro zbytek. V našem případě spustíme:
sudo nano /etc/apache2/sites-available/phxnap2.com.conf
5. Poté přidejte konfigurační blok jako ve výše uvedeném příkladu, přičemž nezapomeňte změnit hodnoty pro phxnap2.com :
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName phxnap2.com
ServerAlias www.phxnap2.com
DocumentRoot /var/www/phxnap2.com/public_html
ErrorLog ${APACHE_LOG_DIR}/phxnap2.com-error.log
CustomLog ${APACHE_LOG_DIR}/phxnap2.com-access.log combined
</VirtualHost>
Krok 3:Povolte konfigurační soubory virtuálního hostitele
Chcete-li povolit soubor virtuálního hostitele, vytvořte symbolický odkaz ze souboru virtuálního hostitele na adresář s povolenými weby. Apache2 čte tento soubor, když zírá.
1. Použijte pomocníka a2ensite pro povolení souboru virtuálního hostitele příkazem:
sudo a2ensite phxnap1.com
Výstup se zobrazí jako:
2. Opakujte proces pro druhou doménu zadáním:
sudo a2ensite phxnap2.com
3. Dále ověřte správnost syntaxe konfiguračního souboru pomocí příkazu:
sudo apachectl configtest
Zpráva v terminálu potvrdí správnost syntaxe:„Syntaxe OK“
4. Restartujte Apache2, aby se změny projevily:
sudo systemctl restart apache2
5. Jediné, co zbývá udělat, je přejít do webového prohlížeče a otevřít své webové stránky. Na základě index.html soubor, který jsme vytvořili dříve, měla by se pro každou doménu objevit příslušná zpráva.
phxnap1.com
phxnap2.com
Krok 4:Konfigurace brány firewall (volitelné)
Upravte nastavení brány firewall pro zlepšení zabezpečení vytvořením pravidla pro povolení SSH na Ubuntu:
sudo ufw allow OpenSSH
Přidejte pravidla pro povolení přístupu k Apache.
sudo ufw allow in “Apache Full”
Dále povolte bránu firewall.
sudo ufw enable
Pokud se zobrazí zpráva „Příkaz může narušit existující připojení SSH.“ Stiskněte y
. Pokud brána firewall funguje správně, měli byste vidět „Firewall je aktivní a povolen při spuštění systému.“