GNU/Linux >> Znalost Linux >  >> Linux

Jak vytvořit virtuální hostitele Nginx (blok serveru)

Serverové bloky, často označované jako virtuální hostitelé v Nginx, umožňují hostovat více webových stránek na jednom serveru. Zde je návod, jak je používat.

Obsah

  • Co je virtuální hostitel?
  • Jak virtuální hostitel funguje?
  • Jak vytvořit virtuální hostitele Nginx (bloky serveru)
    • 1. Vytvoření adresářové struktury
    • 2. Vytváření testovacích stránek pro každý web
    • 3. Vytvořte virtuálního hostitele Nginx (bloky serveru)
    • 4. Povolit virtuální hostitele Nginx (bloky serveru)
    • 5. Testování virtuálních hostitelů (volitelné)
    • 6. Zakázat virtuální hostitele Nginx (bloky serveru)
  • Závěr

Nginx je navržen tak, aby zpracovával více domén na jednom serveru a IP adrese. Jinými slovy, pokud máte jeden server, který se používá jako webový server a má přidělenou pouze jednu IP adresu, pak k tomu, aby na serveru běželo více než jeden web nebo doména, použijete virtuální hostitele Nginx.

Než začnete s tímto výukovým programem, budete si muset nainstalovat Nginx. Chcete-li se dozvědět, jak jej nainstalovat, přečtěte si naši vynikající příručku o instalaci webového serveru Nginx v systému Linux.

Co je virtuální hostitel?

Pokud si nejste jisti, co je virtuální hostitel, dovolte mi to vysvětlit. Je to termín Apache HTTP Server; běžně jej však používají i uživatelé Nginx. Správný termín pro Nginx je blok serveru .

Virtuální hostitel je metoda pro hostování více doménových jmen na jednom serveru.

Jak virtuální hostitel funguje?

Když spustíte software webového serveru, jako je Nginx, na serveru, tento webový server se naváže na jeden nebo více síťových portů. Obvykle to pro webový server budou porty 80 a 443.

Když počítač navštíví webovou stránku, odešle požadavek přes internet na server a server tento požadavek přijme. Takže první věc, kterou server udělá, je podívat se na port, kterým byl požadavek odeslán na cílový port.

Dále použije tento cílový port k určení, která aplikace má tyto informace předat. To znamená, že váš webový server může mít pouze jednu aplikaci přijímající požadavky.

Ale co když chcete hostovat dvě různé webové stránky na stejném webovém serveru? Server musí sdělit, kdy přijde paket s žádostí o web. Poté potřebuje vědět, o jaký web se žádá, aby věděl, jaké informace má poslat zpět.

Bez ohledu na to, jaký web je požadován, server nemůže použít pouze číslo portu jako cílový port k určení, ke kterému webu se klient pokouší přistupovat. Vše, co server udělá, je říct:"Posílám tento požadavek Nginx." Odtud se Nginx musí rozhodnout, co poslat zpět.

Nginx má koncept zvaný bloky serveru . Serverové bloky lze použít pro dvě různé věci.

Mohou být použity k poskytování jiných webových stránek na základě požadované IP adresy nebo je lze je použít k poskytování různých webových stránek na základě použitého názvu domény .

Takže když zadáte název webové stránky, jako je www.example.com a když to server obdrží, Nginx se může podívat do hlaviček HTTP, jaký název serveru byl požadován, a odtud na základě svých nakonfigurovaných virtuálních hostitelů vytvořit rozhodnutí, do kterého adresáře jsou uloženy soubory webových stránek, a vrátit klientovi správnou odpověď na základě názvu serveru.

Jak vytvořit virtuální hostitele Nginx (bloky serveru)

Existují dva adresáře, ve kterých můžeme vytvářet a ukládat konfigurační soubory našeho virtuálního hostitele. Oba jsou umístěny v /etc/nginx adresář. Názvy těchto dvou adresářů jsou sites-available a sites-enabled .

  • /etc/nginx/sites-available :Adresář, kde jsou definováni jednotliví virtuální hostitelé (webové stránky). Pamatujte, že Nginx nebude používat konfigurační soubory nalezené v tomto adresáři pokud nejsou propojeny do /etc/nginx/sites-enabled adresář.
  • /etc/nginx/sites-enabled :Seznam virtuálních hostitelů (webů), které Nginx aktivně obsluhuje.

Pravděpodobně se divíte, proč potřebujeme dva adresáře pro ukládání souborů virtuálního hostitele? Hlavní výhodou toho je, že na našem serveru Nginx můžeme vytvořit mnoho souborů virtuálních hostitelů, ale můžeme je povolit podle našich požadavků.

Na našem serveru Nginx vytvoříme soubory virtuálního hostitele pro hostování více webů s více doménami. Názvy domén jsou website1.comwebsite2.com .

1. Vytvoření adresářové struktury

První věc, kterou musíme udělat, je vytvořit adresář pro každého virtuálního hostitele pro uložení různého obsahu webových stránek. Adresáře umístíme do /var/www , a pojmenujeme je po každém názvu domény.

Spuštěním následujících příkazů vytvořte adresáře:

sudo mkdir -p /var/www/website1.com
sudo mkdir -p /var/www/website2.com

 -p příznak ve výše uvedeném příkazu říká mkdir vytvořit všechny nezbytné nadřazené adresáře.

2. Vytváření testovacích stránek pro každý web

Dále pro demonstrační účely vytvoříme index.html soubor v kořenovém adresáři dokumentů domény, abychom měli co zobrazovat.

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

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

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Welcome to Website 1!</title>
    </head>
    <body>
        <h1>Welcome to Website 1!</h1>
    </body>
</html>

Nyní zopakujte výše uvedený krok pro web website2.com.

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

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

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Welcome to Website 2!</title>
    </head>
    <body>
        <h1>Welcome to Website 2!</h1>
    </body>
</html>

3. Vytvořte virtuálního hostitele Nginx (bloky serveru)

Chcete-li vytvořit soubor virtuálního hostitele Nginx uvnitř sites-available adresáře, spusťte následující příkaz:

sudo vim /etc/nginx/sites-available/website1.com

Je důležité si uvědomit, že konfigurační soubor virtuálního hostitele Nginx lze pojmenovat jakkoli chcete, ale obvykle je dobrým zvykem používat název domény.

Nyní do souboru virtuálního hostitele vložte následující obsah:

server {
    listen 80;
    server_name website1.com www.website1.com;
    root /var/www/website1.com;

    access_log /var/log/nginx/website1-access.log;
    error_log /var/log/nginx/website1-error.log;
}

Aby byly věci transparentnější, pojďme tuto syntaxi rozebrat. Za prvé, zde je význam jednotlivých parametrů:

  • listen :Určete, na kterém portu má server Nginx naslouchat připojení.
  • server_name :Zde porovnáváme požadavky pro naši doménu. Direktiva obsahuje seznam názvů domén, které chceme použít pro přístup na naše stránky.
  • root : Umístění adresáře, do kterého jsme uložili soubory našich webových stránek.
  • error_log :Úplná cesta k souboru protokolu, ve kterém ukládáme všechny protokoly chyb tohoto virtuálního hostitele.
  • access_log :Úplná cesta k souboru protokolu, ve kterém ukládáme všechny protokoly přístupu tohoto virtuálního hostitele.

Nyní můžeme použít naši počáteční konfiguraci virtuálního hostitele jako základ pro náš druhý soubor. Jednoduše jej zkopírujte a vytvořte nový soubor:

sudo cp /etc/nginx/sites-available/website1.com /etc/nginx/sites-available/website2.com

Otevřete nový soubor a upravte jej tak, aby odpovídal našemu druhému (website2.com ) název domény:

sudo vim /etc/nginx/sites-available/website2.com
server {
    listen 80;
    server_name website2.com www.website2.com;
    root /var/www/website2.com;

    access_log /var/log/nginx/website2-access.log;
    error_log /var/log/nginx/website2-error.log;
}

4. Povolit virtuální hostitele Nginx (bloky serveru)

Poslední věc, kterou musíme udělat před testováním, povolí virtuální hostitele. Můžeme to udělat vytvořením symbolického odkazu ze souboru na sites-enabled adresář:

sudo ln -s /etc/nginx/sites-available/website1.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/website2.com /etc/nginx/sites-enabled/

Jak můžete vidět na obrázku níže, tyto soubory jsou nyní propojeny s sites-enabled adresář.

Než budeme pokračovat, zkontrolujme, zda tam nejsou žádné překlepy. Otestujte správnou syntaxi konfigurace Nginx:

sudo nginx -t

A nakonec, pokud nebyly nalezeny žádné problémy, restartujte službu Nginx a použijte změny:

sudo systemctl restart nginx

5. Testování virtuálních hostitelů (volitelné)

Abychom mohli otestovat virtuální hostitele Nginx, musíme nejprve nasměrovat naše záznamy názvů domén na IP adresu serveru. V našem případě je IP adresa serveru 192.168.122.101 .

Pokud používáte Linux, otevřete /etc/hosts soubor na vašem stolním PC (ten, ze kterého budete test provádět) pomocí níže uvedeného příkazu:

sudo vim /etc/hosts

A přidejte názvy virtuálních domén jeden po druhém, jak je znázorněno níže.

Po dokončení uložte a zavřete soubor. Tento způsob nám umožní testovat domény, které nevlastníme.

Nyní otevřete prohlížeč a zadejte www.website1.com a www.website2.com jeden za druhým. Uvidíte indexové stránky obou domén.

Úspěšně jste nakonfigurovali dvě nezávislé domény s Nginx.

6. Zakázat virtuální hostitele Nginx (bloky serveru)

Chcete-li zakázat virtuálního hostitele v Nginx, musíme odstranit symbolický odkaz, který jsme vytvořili při povolení souboru virtuálního hostitele. Chcete-li například zakázat website2.com , musíme provést následující příkaz:

sudo rm -rf /etc/nginx/sites-enabled/website2.com

Chcete-li použít změny, musíme restartovat server Nginx:

sudo systemctl restart nginx

Závěr

Tento článek ukazuje, jak vytvořit virtuální hostitele Nginx (bloky serverů) a hostit více domén na jednom serveru Linux. Chcete-li vytvořit virtuálního hostitele pro jinou doménu, opakujte stejné kroky. Ale Nginx toho samozřejmě umí mnohem víc.

Pokud navíc chcete vědět, jak zabezpečit svůj web pomocí bezplatného certifikátu SSL, doporučuji projít si našeho průvodce Let’s Encrypt:Get Free SSL Certificate Using Certbot.

Další informace o nastavení serveru Nginx naleznete v oficiální dokumentaci Nginx.

Děkuji za přečtení! Doufám, že vám článek pomohl a dokázali jste nastavit virtuální hostitele. Pokud máte nějaké dotazy, neváhejte zanechat komentář.


Linux
  1. Jak vytvořit zálohu

  2. Jak vytvořit virtuální výstup v Pulseaudio?

  3. Virtuální hostitel Nginx – blok serveru Nginx

  1. Jak nastavit virtuálního hostitele Nginx (bloky serveru) na CentOS 7

  2. Jak přesměrovat HTTP na HTTPS v Nginx

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

  1. Jak vytvořit virtuální síť v Azure Cloud

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

  3. Jak hostovat webovou stránku na webovém serveru NGINX