GNU/Linux >> Znalost Linux >  >> Linux

Jak nastavit konfiguraci virtuálního hostitele Apache (s příklady)

Pomocí virtuálního hostitele Apache můžete provozovat několik webových stránek na stejném serveru.

Například mohu provozovat thegeekstuff.com i top5freeware.com na jediném fyzickém serveru, na kterém běží jeden webový server Apache.

Obr:Virtuální hostitel Apache (Více webových stránek, jeden Apache)


Existují dva typy konfigurací virtuálního hostitele Apache:1) virtuální hostitel založený na IP a 2) virtuální hostitel založený na názvu. Pro většinu scénářů se doporučuje virtuální hostitel založený na názvu.

Virtuální hostitel založený na IP

V této konfiguraci, když odkazujete dvě webové stránky (s různou IP adresou) na server, na kterém běží Apache, měl by mít tento fyzický server nakonfigurované dvě různé IP adresy.

To znamená, že server by měl mít dvě ethernetové karty, každou z nich nakonfigurovanou na IP adresu odpovídajícího webu, který bude virtuální hostitel Apache obsluhovat. Takže to není praktické pro většinu aspektů a neměli byste to používat.

V následujícím příkladu server obsahuje dvě síťové karty, jedna je nakonfigurována s 192.168.101.1 ip-adresou pro thegeekstuff.com, další je nakonfigurována s 192.168.102.1 pro top5freeware.com. Obě tyto IP adresy jsou obsluhovány jedním webovým serverem Apache běžícím na tomto serveru pomocí virtuálního hostitele založeného na IP.

Obr:Virtuální hostitel založený na IP Apache

Virtuální hostitel podle jména

V této konfiguraci, když webový server Apache obdrží požadavek, hledá název hostitele v hlavičce HTTP a v závislosti na názvu hostitele serveruje různé webové stránky. To je velmi snadné, protože na fyzickém serveru potřebujete pouze jednu IP adresu; ale aktualizujete DNS pomocí více názvů webových stránek směřujících na stejnou IP adresu. Pro všechny praktické účely budete používat pouze konfiguraci virtuálního hostitele založenou na názvu.

V následujícím příkladu server obsahuje pouze jednu kartu NIC, která je nakonfigurována s ip-adresou 192.168.101.1. Záznam DNS pro web thegeekstuff.com a top5freeware.com ukazuje na ip-adresu 192.168.101.1. Když Apache obdrží požadavek, hledá záznam názvu hostitele v hlavičce HTTP a obsluhuje odpovídající web.

Obr:Virtuální hostitel založený na názvu Apache

1. Odkomentujte httpd-vhosts.conf v httpd.conf

Pokud jste nainstalovali Apache 2 ze zdroje, ve výchozím nastavení bude následující řádek v souboru httpd.conf zakomentován. Odkomentujte tento řádek.

# vi /usr/local/apache2/conf/httpd.conf
Include conf/extra/httpd-vhosts.conf

2. Nastavte virtuální hostitele

Upravte soubor httpd-vhosts.conf, jak je uvedeno níže, abyste nastavili virtuální hostitele založené na pojmenování pro dva hostitele.

  • NameVirtualHost *:80 – Označuje, že všichni virtuální hostitelé na základě názvu budou naslouchat na výchozím portu 80
  • – Mezi tyto značky VirtualHost uzavřete všechny konfigurační parametry Apache pro každého virtuálního hostitele. V kontejneru virtuálního hostitele lze použít libovolné direktivy Apache.
  • V následujícím příkladu nastavujeme virtuálního hostitele pro thegeekstuff.com a top5freeware.com naslouchající na stejném portu 80. Budou tedy dva , jeden pro každou webovou stránku .
  • Když přejdete na web thegeekstuff.com, soubory v adresáři /usr/local/apache2/docs/thegeekstuff budou obsluhovány serverem Apache; a access_log a error_log pro tento web budou pod /usr/local/apache2/logs/thegeekstuff
# vi /usr/local/apache2/conf/extra/httpd-vhosts.conf
NameVirtualHost *:80

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/usr/local/apache2/docs/thegeekstuff"
    ServerName thegeekstuff.com
    ServerAlias www.thegeekstuff.com
    ErrorLog "logs/thegeekstuff/error_log"
    CustomLog "logs/thegeekstuff/access_log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/usr/local/apache2/docs/top5freeware"
    ServerName top5freeware.com
    ServerAlias www.top5freeware.com
    ErrorLog "logs/top5freeware/error_log"
    CustomLog "logs/top5freeware/access_log" common
</VirtualHost>

3. Zkontrolujte syntaxi konfigurace VirtualHost

Ověřte syntaxi virtuální konfigurace pomocí „httpd -S“, jak je uvedeno níže. Když je vše správně nastaveno, zobrazí se pouze „Syntaxe OK“.

# /usr/local/apache2/bin/httpd -S
VirtualHost configuration:
Syntax OK

Když něco není správně nakonfigurováno, zobrazí se varovná zpráva, včetně zprávy „adresář se neopouští“, jak je uvedeno níže.

# /usr/local/apache2/bin/httpd -S
Warning: DocumentRoot [/usr/local/apache2/docs/top5freeware] does not exist
Warning: ErrorLog [/usr/local/apache2/logs/thegeekstuff] does not exist
Syntax OK

4. Restartujte Apache a otestujte

# /usr/local/apache2/bin/apachectl restart

Když nyní přejdete na stránku thegeekstuff.com (nebo www.thegeekstuff.com), apache bude poskytovat soubory z adresáře /usr/local/apache2/docs/thegeekstuff.

Když přejdete na top5freeware.com (nebo www.top5freeware.com), stejný apache běžící na stejném serveru bude obsluhovat soubory z adresáře /usr/local/apache2/docs/top5freeware.

Jen pro zopakování, aby virtuální hostitel založený na názvech fungoval správně, měl by záznam DNS pro oba tyto weby ukazovat na stejnou externí IP adresu fyzického serveru, na kterém běží webový server Apache.


Linux
  1. Nastavte virtuálního hostitele založeného na názvu v Apache

  2. Jak nastavit systém souborů ZFS v systému Linux pomocí příkladů příkazů zpool

  3. Jak nakonfigurovat virtuálního hostitele Apache na ubuntu

  1. Jak nastavit SSL/TLS s Apache httpd na Red Hat

  2. Jak vytvořit virtuální hostitele Apache na CentOS 7

  3. Jak nastavit cluster Apache Tomcat se 3 uzly na Ubuntu

  1. Jak vytvořit virtuální hostitele na serveru Apache pro hostování více webových stránek

  2. Jak nakonfigurovat virtuální hostitele Apache v Ubuntu 18.04 LTS

  3. Jak nastavit WordPress na serveru Ubuntu s Apache