Hostujte více domén na jednom serveru nebo IP s Apache nebo Nginx

Pojďme se společně podívat na postup, jakým způsobem lze nakonfigurovat servery Apache a Nginx pro hostování většího počtu webových prezentací.

V porovnání se sdíleným webhostingem, nabízí hostování webových stránek na cloudovém serveru značnou míru flexibility. Umožňuje instalovat libovolný software, škálovat prostředky dle potřeby a konfigurovat server pro dosažení optimálního výkonu a minimalizaci nákladů.

Pokud provozujete několik webových stránek pro různé obchodní aktivity a nepřejete si je hostovat samostatně, je možné využít koncept virtuálního serveru na webovém serveru. Podívejme se podrobněji na tento postup.

Mám k dispozici dva weby, které bych rád zprovoznil na jediném cloudovém virtuálním stroji.

Před samotnou implementací si ujasněme princip fungování celého procesu.

Koncept hostování více webových stránek na jedné instanci webového serveru se označuje jako virtuální hosting. Každý virtuální host je definován v konfiguračním souboru společně s příslušnou URL adresou. Při obdržení požadavku na danou URL adresu, webový server obslouží provoz z kořenového adresáře definovaného pro tuto adresu.

Nastavení virtuálního hosta v Apache pro hosting více domén

  • Přihlaste se k serveru Apache HTTP Server
  • Otevřete konfigurační soubor Apache. (ve výchozí instalaci se nachází v /etc/httpd/conf/httpd.conf)
  • Vytvořte zálohu souboru httpd.conf
  • Vytvořte kontejner VirtualHost, dle následujícího vzoru, který je připraven pro dvě domény.
<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /opt/htdocs/lab
    ServerName lab.etechblog.cz.com
    ErrorLog logs/lab.etechblog.cz.com-error_log
    CustomLog logs/lab.etechblog.cz.com-access_log common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /opt/htdocs/gf-dev
    ServerName gf.dev
    ErrorLog logs/gf.dev-error_log
    CustomLog logs/gf.dev-access_log common
</VirtualHost>

Poznámka: Hodnoty pro ServerAdmin, DocumentRoot, ServerName, ErrorLog a CustomLog upravte podle vašich specifických požadavků.

  • Restartujte službu Apache HTTP Server a otestujte funkčnost obou URL adres.

Nastavení virtuálního hosta v Nginx pro hosting více domén

  • Přihlaste se k serveru Nginx
  • Přejděte do adresáře, kam jste nainstalovali Nginx. (standardně se jedná o /etc/nginx/)

Existuje několik způsobů, jak konfiguraci provést. Buď upravíte hlavní konfigurační soubor nginx.conf nebo jiný vlastní konfigurační soubor, pokud jej používáte. Alternativně je možné vytvořit nový soubor s příponou .conf v adresáři conf.d. Vyberte si postup, který vám nejvíce vyhovuje a vytvořte si zálohu původního souboru v případě, že provádíte jeho úpravu.

  • Vytvořte blok serveru pro obě URL adresy, jak je uvedeno v příkladu níže.
server {
    listen 80;
    root /opt/htdocs/lab;
    index index.html index.htm;
    server_name lab.etechblog.cz.com;
    location / {
        try_files $uri $uri/ =404;
    }
}

server {
    listen 80;
    root /opt/htdocs/gf-dev;
    index index.html index.htm;
    server_name gf.dev;
    location / {
        try_files $uri $uri/ =404;
    }
}

Poznámka: Hodnoty pro root a server_name upravte dle vašich potřeb.

  • Restartujte server Nginx a otestujte funkčnost obou URL adres.

Nezapomeňte aktualizovat DNS záznamy vašich URL adres tak, aby směřovaly na IP adresu vašeho serveru. Po úspěšném dokončení všech kroků by měly být obě URL adresy dostupné prostřednictvím výše provedené konfigurace.

Závěr

Toto byl rychlý návod, jakým způsobem hostovat více domén na jedné instanci webového serveru, ať už se jedná o Apache nebo Nginx. Po uvedení webu do provozu nezapomeňte provést testy zaměřené na odhalení případných bezpečnostních zranitelností.

Líbil se vám tento článek? Podělte se o něj s ostatními!