Vyhledávání na webu

Vytvářejte virtuální hostitele Apache založené na názvech a IP v Linuxu


Virtuální hosting je koncept, kdy je na jednom serveru hostováno více webových stránek nebo domén, což se provádí za účelem snížení režijních nákladů na zdroje a provozních nákladů firmy nebo organizace.

Webový server Apache zjednodušuje hostování více stránek tím, že správcům systému umožňuje snadno konfigurovat virtuální hostitele pro každý web. Virtuální hosting může být založen na IP nebo na názvu.

V tomto tutoriálu prozkoumáme, jak nastavit virtuální hosting v distribucích založených na RHEL, jako jsou Fedora, CentOS Stream, Rocky Linux a Alma Linux pomocí virtuálních hostitelů založených na IP i názvu v Linuxu.

Koncepty Shared Web Hosting a Reseller Web Hosting jsou založeny především na této funkci Apache.

Typy virtuálního hostingu Apache v Linuxu

S Apache jsou k dispozici dva typy virtuálního hostování.

Virtuální hosting podle jména

U tohoto typu hostingu může být několik domén nebo webových stránek hostováno na jednom serveru pomocí jediné IP adresy. Jednoduše řečeno, všechny domény budou sdílet jednu IP adresu. Toto je nejjednodušší typ virtuálního hostování pro konfiguraci, protože vše, co musíte udělat, je namapovat názvy domén na adresu IP a poté nakonfigurovat virtuální hostitele Apache pro každý z názvů domén.

Virtuální hosting založený na IP

Virtuální hosting založený na IP je místo, kde je každé doméně přiřazena jedinečná IP adresa. Tyto adresy IP lze připojit k serveru pomocí více karet NIC nebo jedné karty NIC.

Testovací prostředí

  • OSFedora 34
  • AplikaceWebový server Apache
  • IP adresa192.168.2.105
  • IP adresa192.168.2.106
  • Domainwww.mydomain1.com
  • Domainwww.mydomain2.com

Jak nastavit virtuální hostitele Apache založené na IP a názvu

Než začnete, ujistěte se, že je ve vašem systému nainstalován webový server Apache pomocí příkazu dnf, jak je znázorněno.

sudo dnf install httpd -y

Nastavení virtuálního hostování podle názvu

Prvním krokem při nastavování virtuálního hostingu založeného na názvech je nastavení překladu názvu domény v souboru /etc/hosts. Proto spusťte následující příkazy jako uživatel root a přidejte položky názvu domény ukazující na IP adresu hostitele.

echo '192.168.2.105 www.mydomain1.com' >> /etc/hosts
echo '192.168.2.105 www.mydomain2.com' >> /etc/hosts

Dalším krokem je vytvoření adresáře, který bude obsahovat soubory webových stránek. Proto vytvoříme dva adresáře pro virtuální hostitele v kořenovém adresáři dokumentu, což je složka /var/www/html v konfiguraci Apache.

sudo mkdir /var/www/html/mydomain1.com/
sudo mkdir /var/www/html/mydomain2.com/

Dalším krokem je úprava souboru virtuálního hostitele, který dá Apache IP pokyn, aby naslouchal příchozím požadavkům webového serveru Apache pro všechny názvy domén. Otevřete proto konfigurační soubor Apache pomocí preferovaného textového editoru.

sudo vim /etc/httpd/conf/httpd.conf

Přidejte následující bloky kódu pro dva virtuální hostitele.

<VirtualHost 192.168.2.105:80>
   ServerName mydomain1.com
   ServerAlias www.mydomain1.com
   DocumentRoot /var/www/html/mydomain1.com/
ErrorLog logs/www.mydomain1.com-error_log
CustomLog logs/www.mydomain1.com-access_log common
</VirtualHost>


<VirtualHost 192.168.2.105:80>
    ServerName mydomain2.com
    ServerAlias www.mydomain2.com
    DocumentRoot /var/www/html/mydomain2.com
ErrorLog logs/www.mydomain2.com-error_log
CustomLog logs/www.mydomain2.com-access_log common
</VirtualHost>

Uložte změny a ukončete. Dále zkontrolujte, zda je syntaxe v pořádku a zda nejsou žádné chyby.

httpd -t

Dále vytvoříme HTML testovací stránky pro každou z domén a přidáme nějaký obsah jako způsob, jak ověřit, zda vše z prohlížeče funguje správně.

Pro mojedomena1.com

Vytvořte soubor index.html v adresáři mydomain1.com.

sudo vim /var/www/html/mydomain1.com/index.html 

Vložte následující řádky.

<html>
  <head>
    <title>My sample site</title>
  </head>
  <body>
    <h1>Success! Welcome to mydomain1.com.</h1>
  </body>
</html>

Uložte změny a ukončete soubor.

Pro mydomain2.com

Vytvořte soubor index.html v adresáři mydomain2.com.

sudo vim /var/www/html/mydomain2.com/index.html 

Vložte následující řádky.

<html>
  <head>
    <title>My sample site</title>
  </head>
  <body>
    <h1>Success! Welcome to mydomain2.com.</h1>
  </body>
</html>

Uložte změny a ukončete soubor.

Nyní spusťte webový server Apache a potvrďte, že běží.

sudo systemctl start httpd
sudo systemctl status httpd

Pokud máte povolenou bránu firewall, povolte provoz HTTP a HTTPS (v případě potřeby).

sudo firewall-cmd --add-service=http --zone=public --permanent
sudo firewall-cmd --add-service=https --zone=public --permanent
sudo firewall-cmd --reload

Nyní otestujte domény z prohlížeče.

Nastavení virtuálního hostingu založeného na IP pro Linux

Virtuální hosting založený na IP, jak název napovídá, zahrnuje více IP adres přiřazených vašemu linuxovému serveru. Ve většině případů jsou k vašemu systému připojeny dvě nebo více karet NIC, které poskytují více adres IP.

Cílem virtuálního hostingu založeného na IP je přiřadit každé doméně jedinečnou IP adresu, kterou nebude používat žádná jiná doména.

To je ideální pro situace, kdy máte webové stránky šifrované pomocí SSL certifikátu (mod_ssl) nebo běží na různých portech. V našem nastavení máme dva NIC adaptéry.

Chcete-li zobrazit konfiguraci IP ve vašem systému, spusťte příkaz ifconfig nebo ip a.

ifconfig
OR
ip addr

Náš server má dvě IP adresy, každou přiřazenou k jedné NIC. IP 192.168.2.106 je přiřazeno ens160 a 192.168.2.105 je přiřazeno ens224.

Ještě jednou nakonfigurujeme soubor httpd.conf.

sudo vim /etc/httpd/conf/httpd.conf

Vytvořte virtuální hostitele pro obě domény, jak je znázorněno. Ujistěte se, že každá adresa IP je přiřazena k příslušné konfiguraci virtuálního hostitele.

<VirtualHost 192.168.2.105:80>
   ServerName mydomain1.com
   ServerAlias www.mydomain1.com
   DocumentRoot /var/www/html/mydomain1.com/
ErrorLog logs/www.mydomain1.com-error_log
CustomLog logs/www.mydomain1.com-access_log common
</VirtualHost>


<VirtualHost 192.168.2.106:80>
    ServerName mydomain2.com
    ServerAlias www.mydomain2.com
    DocumentRoot /var/www/html/mydomain2.com
ErrorLog logs/www.mydomain2.com-error_log
CustomLog logs/www.mydomain2.com-access_log common
</VirtualHost>

Uložte a ukončete konfigurační soubor. Dále upravte soubor /etc/hosts podle obrázku.

echo '192.168.2.105 www.mydomain1.com' >> /etc/hosts
echo '192.168.2.106 www.mydomain2.com'>> /etc/hosts

Potvrďte zadání:

cat /etc/hosts

192.168.2.105 www.mydomain1.com
192.168.2.106 www.mydomain2.com

Poté restartujte webový server Apache, aby se změny projevily.

sudo systemctl restart httpd

Nakonec otestujte nastavení virtuálního hostingu založeného na IP přístupem k uvedeným adresám URL.

http://192.168.2.105
http://192.168.2.106

Tento test potvrzuje, že virtuální hosting na bázi IP funguje přesně podle očekávání!

Závěr

A to je pro tuto přednášku vše. Doufáme, že oba typy virtuálního hostingu zvládnete bez větších problémů nakonfigurovat. Velmi si vážíme vaší zpětné vazby na tohoto průvodce.