GNU/Linux >> Znalost Linux >  >> Linux

Jak nakonfigurovat více webových stránek s webovým serverem Apache

Ve svém posledním příspěvku jsem vysvětlil, jak nakonfigurovat webový server Apache pro jeden web. Ukázalo se, že je to velmi snadné. V tomto příspěvku vám ukážu, jak obsluhovat více webů pomocí jediné instance Apache.

Poznámka:Tento článek jsem napsal na virtuálním počítači pomocí Fedory 27 s Apache 2.4.29. Pokud máte jinou distribuci nebo vydání Fedory, mohou se příkazy, které budete používat, a umístění a obsah konfiguračních souborů lišit.

Jak již bylo zmíněno v předchozím článku, všechny konfigurační soubory pro Apache jsou umístěny v /etc/httpd/conf a /etc/httpd/conf.d . Údaje pro webové stránky jsou umístěny v /var/www ve výchozím stavu. S více webovými stránkami budete muset zadat více umístění, jedno pro každý web, který hostujete.

Virtuální hosting podle jména

S virtuálním hostingem založeným na jménu můžete použít jednu IP adresu pro více webových stránek. Moderní webové servery, včetně Apache, používají hostname část zadané adresy URL k určení, který virtuální webový hostitel odpoví na požadavek stránky. To vyžaduje jen trochu více konfigurace než pro jeden web.

I když začínáte pouze s jedním webem, doporučuji jej nastavit jako virtuálního hostitele, což usnadní pozdější přidávání dalších webů. V tomto článku navážu tam, kde jsme v předchozím článku skončili, takže budete muset nastavit původní web, virtuální web založený na názvu.

Příprava původního webu

Než nastavíte druhý web, musíte pro stávající web zprovoznit virtuální hosting založený na názvu. Pokud nemáte existující web, vraťte se a vytvořte si ho nyní.

Jakmile budete mít svůj web, přidejte následující stanzu na konec jeho /etc/httpd/conf/httpd.conf konfigurační soubor (přidání této stanzy je jediná změna, kterou musíte provést v httpd.conf soubor):

<VirtualHost 127.0.0.1:80>
    DocumentRoot /var/www/html
    ServerName www.site1.org
</VirtualHost>

Toto bude první stanza virtuálního hostitele a měla by zůstat první, aby se z ní stala výchozí definice. To znamená, že přístup HTTP k serveru podle IP adresy nebo jiného jména, které se překládá na tuto IP adresu, ale které nemá specificky pojmenovanou stanzu konfigurace hostitele, bude přesměrován na tohoto virtuálního hostitele. Všechny ostatní stanzy konfigurace virtuálního hostitele by měly následovat po této.

Musíte také nastavit své webové stránky pomocí položek v /etc/hosts poskytnout rozlišení názvu. Minule jsme právě použili IP adresu pro localhost . Normálně by to bylo provedeno pomocí jakékoli jmenné služby, kterou používáte; například Google nebo Godaddy. U testovacího webu to udělejte přidáním nového názvu do localhost řádek v /etc/hosts . Přidejte položky pro oba weby, abyste tento soubor nemuseli později znovu upravovat. Výsledek vypadá takto:

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 www.site1.org www.site2.org

Změňme také /var/www/html/index.html aby byl soubor o něco jasnější. Mělo by to vypadat takto (s nějakým dodatečným textem, který to identifikuje jako web číslo 1):

<h1>Hello World</h1> 

Web site 1.

Restartujte server HTTPD, abyste povolili změny v httpd konfigurace. Poté se můžete na webovou stránku podívat pomocí prohlížeče textového režimu Lynx z příkazového řádku.

[root@testvm1 ~]# systemctl restart httpd
[root@testvm1 ~]# lynx www.site1.org

                                              Hello World
  Web site 1.
<snip>
Commands: Use arrow keys to move, '?' for help, 'q' to quit, '<-' to go back.
Arrow keys: Up and Down to move.  Right to follow a link; Left to go back.
H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list

Můžete vidět, že se zobrazuje upravený obsah původní webové stránky a že nejsou žádné zjevné chyby. Stiskněte klávesu „Q“ a poté „Y“ pro ukončení webového prohlížeče Lynx.

Konfigurace druhého webu

Nyní jste připraveni nastavit druhý web. Vytvořte novou strukturu adresářů webu pomocí následujícího příkazu:

[root@testvm1 html]# mkdir -p /var/www/html2

Všimněte si, že druhý web je prostě druhý html adresář ve stejném /var/www adresář jako první web.

Nyní vytvořte nový soubor indexu, /var/www/html2/index.html , s následujícím obsahem (tento indexový soubor je trochu odlišný, aby se odlišil od souboru pro původní web):

<h1>Hello World -- Again</h1> 

Web site 2.

Vytvořte novou konfigurační stanzu v httpd.conf pro druhý web a umístěte jej pod předchozí stanzu virtuálního hostitele (ty dva by měly vypadat velmi podobně). Tato stanza říká webovému serveru, kde má najít soubory HTML pro druhý web.

<VirtualHost 127.0.0.1:80>
    DocumentRoot /var/www/html2
    ServerName www.site2.org
</VirtualHost>

Znovu restartujte HTTPD a použijte Lynx k zobrazení výsledků.

[root@testvm1 httpd]# systemctl restart httpd
[root@testvm1 httpd]# lynx www.site2.org

                                    Hello World -- Again

   Web site 2.

<snip>
Commands: Use arrow keys to move, '?' for help, 'q' to quit, '<-' to go back.
Arrow keys: Up and Down to move.  Right to follow a link; Left to go back.
H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list

Zde jsem zkomprimoval výsledný výstup, aby se vešel do tohoto prostoru. Rozdíl na stránce naznačuje, že se jedná o druhý web. Chcete-li zobrazit obě webové stránky současně, otevřete další terminálovou relaci a pomocí webového prohlížeče Lynx zobrazte druhou stránku.

Další úvahy

Tento jednoduchý příklad ukazuje, jak obsluhovat dva weby pomocí jediné instance serveru Apache HTTPD. Konfigurace virtuálních hostitelů se stává o něco složitější, když se zváží další faktory.

Můžete například chtít použít některé skripty CGI pro jednu nebo obě tyto webové stránky. K tomu byste měli vytvořit adresáře pro CGI programy v /var/www :/var/www/cgi-bin a /var/www/cgi-bin2 , aby byl konzistentní s pojmenováním adresáře HTML. Pak byste museli přidat konfigurační direktivy do stanz virtuálního hostitele, abyste určili umístění adresáře pro skripty CGI. Každá webová stránka může mít také adresáře, ze kterých lze stahovat soubory; to by také vyžadovalo záznamy v příslušné stanze virtuálního hostitele.

Web Apache popisuje další metody pro správu více webů a také možnosti konfigurace od ladění výkonu po zabezpečení.

Apache je výkonný webový server, který lze použít ke správě webových stránek od jednoduchých až po velmi složité. Přestože se jeho celkový podíl zmenšuje, Apache zůstává jediným nejčastěji používaným HTTPD serverem na internetu.


Linux
  1. Jak nakonfigurovat webový server Apache

  2. Jak nainstalovat webový server Apache na Ubuntu

  3. Jak nainstalovat a nakonfigurovat webový server Apache na Ubuntu 13.10

  1. Jak zabezpečit webový server Apache pomocí Let's Encrypt na RHEL 8

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

  3. Jak nainstalovat webový server Apache na Linux

  1. Jak nainstalovat a nakonfigurovat webový server Apache s virtuálním hostitelem na Debianu 10

  2. Jak nainstalovat a nakonfigurovat webový server Apache na Debianu 11

  3. Jak nainstalovat a nakonfigurovat webový server Apache na Ubuntu