Virtuální hosting je metoda pro hostování více webových stránek na jednom počítači. Existují dva typy virtuálního hostingu: Virtuální hostování na základě názvu a virtuální hosting na bázi IP. Virtuální hosting na bázi IP je technika pro použití různých direktiv založených na IP adrese a portu, na kterém je požadavek přijat. Můžete přiřadit samostatnou IP pro každou webovou stránku na jediném serveru pomocí virtuálního hostingu založeného na IP. To se používá hlavně k hostování různých webových stránek na různých portech nebo IP adresách.
V tomto článku vytvoříme:
Příklad 1: HostingURL na základě IP: www.ip-vhost.comIP adresa: 192.168.1.42Port: 80Příklad 2: Hosting na základě portu: www.port-vhost.com IP adresa: 192.168.1.43`Port: 8080Chcete-li nastavit virtuální hosting založený na IP, musíte mít k serveru přiřazenu více než jednu IP adresu. Nastavení více IP adres na jednom síťovém rozhraní se nazývá „IP aliasing“. Je to velmi užitečné, zejména pokud má váš server pouze jednu kartu síťového rozhraní (NIC).
Chcete-li nastavit více IP adres, musíte upravit soubor ifcfg-eth0:
sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0Přidejte/upravte následující řádky:
DEVICE="eth0"ONBOOT=yesBOOTPROTO=staticIPADDR0=192.168.1.42IPADDR1=192.168.1.43NETMASK=255.255.255.0GATEWAY=192.168.1.1DNS1=8.8.8. když jste hotový soubor a zavřete soubor <8.8.8. Poté restartujte síťovou službu, aby se tyto změny projevily.sudo service network restartVe výchozím nastavení Apache naslouchá příchozím připojením na portu 80. V případě virtuálního hostování založeného na portu musíte Apache sdělit, aby naslouchal IP adrese 192.168. 1.42 na portu 80 a pro IP adresu 192.168.1.43 na portu 8080.
Chcete-li nastavit více portů, musíte upravit soubor httpd.conf:
sudo nano /etc/httpd/conf/httpd.confPřidejte/upravte následující řádky:
Poslouchejte 192.168.1.42:80Poslouchejte 192.168.1.43:8080Uložte a zavřete soubor a poté restartujte Apache, aby se tyto změny projevily.
sudo systemctl restart httpdNejprve musíte vytvořit adresářovou strukturu, která bude obsahovat webové stránky. Tento adresář je pro doménu známý jako "kořen dokumentu".
V CentOS 7 je výchozí kořenový adresář dokumentů Apache /var/www/html/.
Nyní vytvořte dva adresáře pro webové stránky www.ip-vhost.com a www.port-vhost.com ve výchozím kořenovém adresáři dokumentů Apache:
sudo mkdir -p /var/www/html/www.ip-vhost.comsudo mkdir -p /var/www/html/www.port-vhost.comNyní musíte pro každý web vytvořit soubor index.html, který bude identifikovat danou konkrétní doménu.
Vytvořme soubor index.html pro virtuálního hostitele IP www.ip-vhost.com.
sudo nano /var/www/html/www.ip-vhost.com/index.htmlPřidejte následující obsah.
www.ip-vhost.comVirtuální hostitel ip-vhost.com funguje!
Po dokončení soubor uložte a zavřete.
Podobně vytvořte soubor index.html pro virtuálního hostitele www.port-vhost.com.
sudo nano /var/www/html/www.port-vhost.com/index.htmlPřidejte následující obsah.
www.port-vhost.comVirtuální hostitel port-vhost.com funguje!
Uložte a zavřete i tento soubor. Nyní máte stránky pro testování konfigurace virtuálního hostitele.
V CentOS 7 ve výchozím nastavení služba Apache běží jako uživatel Apache. Musíte změnit vlastnictví těchto dvou virtuálních adresářů na apache, aby Apache mohl číst a zapisovat data.
Vlastnictví můžete změnit pomocí příkazu chown.
sudo chown -R apache:apache /var/www/html/www.ip-vhost.comsudo chown -R apache:apache /var/www/html/www.port-vhost.comMěli byste také vytvořit Apache kořenový adresář dokumentu /var/www/html je čitelný, takže každý může číst soubory z tohoto adresáře.
sudo chmod -R 755 /var/www/htmlNyní má váš webový server oprávnění, která potřebuje k poskytování obsahu.
Dalším krokem je vytvoření konfiguračního souboru virtuálního hostitele pro každý web. Název každého konfiguračního souboru musí končit .conf.
Pojďme vytvořit soubor virtuálního hostitele pro web www.ip-vhost.com.
sudo nano /etc/httpd/conf.d/ip-vhost.com.confPřidejte následující obsah.
ServerName www.ip-vhost.comServerAlias ip-vhost.comDocumentRoot /var/www/html/www.ip-vhost.comErrorLog /var/www/html/www.ip-vhost.com/error.logCustomLog /var/www/ html/www.ip-vhost.com/access.log combinedPo dokončení soubor uložte a zavřete.
Podobně vytvořte soubor virtuálního hostitele pro web www.port-vhost.com.
sudo nano /etc/httpd/conf.d/port-vhost.com.confPřidejte následující obsah.
ServerName www.port-vhost.comServerAlias port-vhost.comDocumentRoot /var/www/html/www.port-vhost.comErrorLog /var/www/html/www.port-vhost.com/error.logCustomLog /var/www/ html/www.port-vhost.com/access.log combinedAž budete hotovi, je dobré zkontrolovat syntaxi konfigurace. Syntaxi souborů můžete zkontrolovat pomocí následujícího příkazu:
sudo apachectl configtestPo dokončení kontroly syntaxe restartujte Apache, aby se tyto změny projevily.
sudo systemctl restart httpdNyní musíte povolit porty Apache 80 a 8080 pomocí FirewallD.
Můžete to provést spuštěním následujících příkazů:
sudo firewall-cmd --permanent --add-port=80/tcpsudo firewall-cmd --permanent --add-port=8080/tcpNyní znovu načtěte službu brány firewall, aby se změny projevily.
sudo firewall-cmd --reloadNyní na stolním počítači s Linuxem otevřete webový prohlížeč a přejděte na adresy URL http://192.168.1.42:80 a http:/ /192.168.1.43:8080. Měli byste vidět ukázkové stránky, které vypadají takto:
Ukázková stránka www.ip-vhost.com:
Ukázková stránka www.port-vhost.com: