Úplný podrobný průvodce instalací a nastavením webového serveru Nginx v systému Ubuntu 20.04
Nginx je open-source a populární reverzní proxy webový server dostupný na více platformách. Software byl vyvinut společností Igor Sysojev jako řešení problému C10K a poprvé vydáno v roce 2004. Problém C10K je problém obsluhovat deset tisíc klientů současně, což nebylo na počátku 21. století docela snadné.
V tomto tutoriálu se podíváme na to, jak nainstalovat a nastavit Nginx na Ubuntu 20.04 LTS.
Předpoklady
Systém s nainstalovaným Ubuntu 20.04 a a sudo
uživatel. Navíc nepotřebujete mít žádný jiný webový server, jako je Apache, spuštěný na portu 80 nebo 443.
Instalace Nginx
Nginx je k dispozici v úložišti Ubuntu 20.04 a apt
k instalaci lze použít správce balíčků. Chcete-li nainstalovat Nginx, otevřete terminál pomocí ctrl+alt+t
a spustit:
sudo apt aktualizace && sudo apt nainstalovat nginx
Instalace bude brzy dokončena a démon Nginx se automaticky spustí na pozadí. Chcete-li zkontrolovat stav Nginx, spusťte:
sudo systemctl status nginx
Po spuštění výše uvedeného příkazu byste měli získat stav Nginx jako aktivní (běžící)
v zelené barvě, jak je vidět níže.
Konfigurace brány firewall Ubuntu (UFW)
Ve výchozím nastavení jsou odchozí porty HTTP (80) a HTTPS (443) na Ubuntu 20.04 uzavřeny. Navíc výchozí démon brány firewall ufw
je zakázáno, protože všechny porty jsou uzavřeny.
Chcete-li tedy přistupovat k serveru Nginx z jiných systémů, musíte povolit ufw
a správně jej nastavte tak, aby umožňoval provoz na portu 80
a 443
. Než povolíte ufw
, vězte, že pokud nastavujete Nginx na vzdáleném serveru, nejprve aktualizujte ufw
pravidla povolit ssh
spuštěním:
sudo ufw povolit ssh
Výše uvedený příkaz umožňuje ssh
přístup ke vzdálenému serveru bez povolení ssh
budete uzamčeni ze vzdáleného serveru.
Po povolení ssh
přístup, můžete povolit ufw
firewall démon spuštěním:
povolit sudo ufw
Nyní musíte změnit pravidla brány firewall tak, aby umožňovala porty HTTP a HTTPS, aby Nginx mohl obsluhovat webový provoz. Chcete-li změnit pravidla, spusťte:
sudo ufw povolit 'Nginx Full'
Nginx plný
umožňuje jak HTTP, tak HTTPS porty pro příchozí a odchozí provoz ze všech IP adres.
Poté ověřte, zda jsou pravidla správně přidána ufw
firewall spuštěním příkazu:
stav sudo ufw
Výše uvedený příkaz vypíše pravidla, která jsme přidali ufw
démon brány firewall.
Připojení k serveru Nginx
Nyní, když jsme nainstalovali Nginx a nakonfigurovali ufw
abyste povolili příchozí webový provoz HTTP a HTTPS, měli byste mít přístup k serveru Nginx pomocí IP adresy serveru.
Pokud neznáte IP adresu serveru, použijte níže uvedený příkaz k jejímu snadnému načtení.
ip addr show eth0 | grep inet | awk '{ tisk $2; }' | sed 's/\/.*$//'
Jakmile budete mít IP adresu, vložte ji do prohlížeče a stiskněte Enter.
//ip-vašeho-serveru
Pokud bylo vše správně nakonfigurováno, měli byste vidět webovou stránku ‚Vítejte v nginx!‘.
Soubory a adresáře Nginx
Nyní, když máme Nginx nainstalovaný a spuštěný na vašem serveru. Pojďme se podívat na některé důležité soubory a adresáře Nginx, které budete muset použít ke konfiguraci svého webu/webové aplikace.
Obsah webového serveru
Můžete nakonfigurovat libovolné umístění, které chcete, aby bylo vaším kořenovým adresářem pro váš blok serveru. Výchozí HTML Nginx je přímo /var/www/html
, je to místo, kde se nachází „uvítací“ stránka, kterou jsme navštívili dříve.
Mezi další umístění, která se obvykle používají jako kořenový adresář pro domény, patří:
/Domov//
/var/www/html/
/opt/
Konfigurační soubory Nginx
Všechny konfigurační soubory Nginx jsou umístěny v /etc/nginx
adresář. Podívejme se na některé důležité soubory, které potřebujeme k nastavení základní domény.
/etc/nginx/nginx.conf
: Tento soubor obsahuje veškerou konfiguraci potřebnou ke spuštění Nginx./etc/nginx/sites-available/
: Tento adresář má všechny serverové blokové konfigurace domén, ale aktuálně nejsou povoleny/nasazeny, a proto nejsou přístupné klientům./etc/nginx/sites-enabled/
: Tento adresář obsahuje aktuálně aktivní/povolené domény přístupné klientům. Abychom povolili doménu, musíme propojit konfigurační soubor doménystránky-dostupné
ks povolenými weby
adresář./etc/nginx/snippets
/: V tomto adresáři můžeme uložit potenciálně znovu použitelné segmenty konfigurace. Šetří spoustu času v produkčním prostředí díky tomu, že dokáže segmenty/bloky konfigurace znovu použít.
Protokoly serveru
Nginx zaznamenává události/aktivity a ukládá je do souborů protokolu v /var/log/nginx
adresář. Nginx zaznamenává aktivity do těchto souborů:
/var/log/nginx/access.log
: Tento soubor zaznamenává klienty, kteří přistoupili k serveru Nginx. Podrobnosti zahrnují IP adresu klienta, čas a datum, prohlížeč použitý pro přístup k serveru a OS./var/log/nginx/error.log
: Tento soubor zaznamenává chyby zjištěné serverem Nginx při běhu.
V této části jsme se tedy stručně podívali na některé důležité soubory a adresáře Nginx, které pro začátek stačí.
Nastavení serverových bloků
Nyní, když máme nějaké základní znalosti o souborech a serveru Nginx, jsme připraveni nastavit vlastní blok serveru. Bloky serveru jsou podobné virtuálním hostitelům Apache.
Podíváme se na to, jak vytvořit blok serveru a ukázat, co použijeme example.com
jako doména v procesu vytváření.
💡 Vyměňte example.com
s názvem vaší domény.
Než začneme konfigurovat serverové bloky, musíme vytvořit adresář, který bude sloužit jako kořenový adresář pro obsah webových stránek. Nechte nás tvořit /var/www/example.com/html
adresář pro použití domény mkdir
příkaz.
sudo mkdir -p /var/www/example.com/html
The -p
volba vytvoří všechny potřebné nadřazené adresáře. To znamená, že bude tvořit example.com
nadřazený adresář html
pokud neexistuje.
Změňte vlastnictví adresáře pomocí $USER
proměnná prostředí:
sudo chown -R $USER:$USER /var/www/example.com/html
Dále vytvořte jednoduchý index.html
soubor, který bude zpřístupněn, když navštívíte konfigurovanou doménu. Toto je pouze pro účely vysvětlení.
nano /var/www/example.com/html/index.html
Vložte následující obsah do souboru, který jsme právě vytvořili na serveru.
Vítejte na example.com! jo! Stránka example.com je přístupná!
lis ctrl+o
napsat a uložit index.html
soubor a poté stiskněte ctrl+x
k východu nano
editor.
Nyní konečně můžeme přejít k vytvoření bloku serveru, aby Nginx mohl sloužit index.html
když nějaký uživatel přejde na example.com
. Abychom vytvořili blok serveru, musíme vytvořit konfigurační soubor s názvem example.com
v stránky-dostupné
adresář. K tomu používáme nano a spouštíme:
sudo nano /etc/nginx/sites-available/example.com
A pak buď napište nebo zkopírujte/vložte následující konfiguraci. Poté stiskněte ctrl+o
a zadejte pro zápis a uložení. Podobně stiskněte ctrl+x
zavřete nano editor.
server { poslouchat 80; poslouchej [::]:80; název_serveru example.com www.example.com; root /var/www/example-domain.com/html; index index.html; umístění / { try_files $uri $uri/ =404; } }
Výše uvedená konfigurace je podobná výchozí konfiguraci bloku serveru, změnili jsme ji vykořenit
příkaz, aby ukázal na náš nový kořenový adresář a změnil název_serveru
na název naší domény. Zatímco umístění{}
příkaz slouží jako příkaz k zachycení chyby, pokud nejsou soubory nalezeny, a zobrazí klientovi chybu 404.
Dále můžeme povolit blok našeho serveru, aby Nginx sloužil example.com
webové stránky. Abychom povolili blok našeho serveru, musíme vytvořit symbolický odkaz example.com
soubor z stránky-dostupné
na s povolenými weby
adresář. Chcete-li to provést, spusťte:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled
Odkaz bude vytvořen v povoleno pro stránky
adresář a nyní example.com
by měla být povolena. Nyní máme na našem serveru Nginx povoleny dva serverové bloky, které budou reagovat na požadavek na základě poslouchat
a název_serveru
direktivy uložené v example.com
konfigurace bloku serveru.
Chcete-li zkontrolovat, zda jsou všechny konfigurační soubory správné a není přítomna žádná syntaktická chyba, spusťte:
sudo nginx -t
Nyní konečně restartujte Nginx a použijte změny spuštěním následujícího příkazu:
sudo systemctl restart nginx
Nginx nyní začne obsluhovat váš blok serveru, můžete přejít na //název-vaší-domény
a uvidíte svou webovou stránku živě.
Poznámka: Aby výše uvedená část fungovala, budete muset nastavit vlastní doménu a nahradit ji example.com
s vlastním názvem domény. Také budete muset nakonfigurovat DNS pro vaši doménu tak, aby ukazovala na IP adresu vašeho serveru Nginx.
Na závěr jsme se podívali na to, jak nainstalovat Nginx, nakonfigurovat ufw
umožnit vzdálený přístup k serveru Nginx, vzdáleně se připojit k Nginx, seznámit se s některými základními soubory a adresáři Nginx a naučit se, jak nastavit blok serveru.
Chcete-li vědět a dozvědět se více o Nginx, možná budete chtít vidět Nginx wiki.