Kompletní průvodce instalací a konfigurací Nginx na Ubuntu [Pro začátečníky]

1. Úvod

Mnoho lidí chce používat Nginx na Ubuntu, ale pokud jste v tom noví, možná nevíte, kde začít. Tento článek poskytuje krok za krokem průvodce pro začátečníky, pokrývající vše od instalace a konfigurace po správu v prostředí Ubuntu.

Co je Nginx?

Nginx (vyslovováno „engine‑x“) je výkonný HTTP server a reverzní proxy server. Je široce používán po celém světě díky svému lehkému designu a flexibilitě, zejména schopnosti zvládat vysoké zatížení provozu.

Výhody používání Nginx na Ubuntu

Ubuntu je populární distribuce Linuxu, která dobře spolupracuje s Nginx. Díky svému systému správy balíčků (APT) je instalace a aktualizace Nginx snadná a nabízí vynikající stabilitu a bezpečnost.

Po přečtení tohoto článku se naučíte:

  • Jak nainstalovat Nginx na Ubuntu
  • Základní postupy konfigurace a správy
  • Ladění výkonu a řešení problémů

Nyní pojďme začít.

2. Jak nainstalovat Nginx na Ubuntu

Pro spuštění Nginx na Ubuntu jej nejprve musíte správně nainstalovat. Tato sekce poskytuje jasný, krok za krokem průvodce instalací.

Kontrola požadovaných balíčků

Před zahájením instalace se ujistěte, že je váš systém aktuální, spuštěním následujících příkazů:

sudo apt update
sudo apt upgrade

Instalace Nginx

Pro instalaci Nginx zadejte následující příkaz:

sudo apt install nginx

Tento příkaz automaticky stáhne a nainstaluje Nginx z APT repozitáře Ubuntu.

Ověření instalace

Pro kontrolu, zda instalace proběhla úspěšně, použijte následující příkaz ke kontrole stavu Nginx:

sudo systemctl status nginx

Pokud výstup ukazuje „active (running)“, instalace byla úspěšná.

Konfigurace firewallu

Ubuntu obsahuje UFW (Uncomplicated Firewall), který můžete použít k povolení provozu Nginx.

sudo ufw allow 'Nginx Full'
sudo ufw enable

Nyní je Nginx nastaven tak, aby fungoval na portech 80 (HTTP) a 443 (HTTPS).

3. Základní konfigurace Nginx na Ubuntu

Pouhá instalace Nginx není dostačující. Dále jej musíte správně nakonfigurovat pro efektivní použití.

Konfigurační soubory a základní struktura

Hlavní konfigurační soubory Nginx se nacházejí v:

  • Hlavní konfigurační soubor: /etc/nginx/nginx.conf
  • Konfigurační soubory pro konkrétní stránky: uvnitř adresáře /etc/nginx/sites-available/

Obvykle vytvoříte konfigurační soubor virtuálního hosta v sites-available a vytvoříte symbolický odkaz na sites-enabled pro aktivaci.

Nastavení virtuálního hosta

Virtuální hosté vám umožňují spravovat více domén nebo projektů na jednom serveru. Následující příklad nastavuje example.com:

sudo nano /etc/nginx/sites-available/example.com

Zadejte následující obsah:

server {
    listen 80;
    server_name example.com www.example.com;

    root /var/www/example.com/html;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
}

Uložte soubor a aktivujte konfiguraci pomocí následujících příkazů:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

Konfigurace SSL/TLS

Pro umožnění zabezpečené komunikace nastavte SSL/TLS certifikát. Můžete použít Let’s Encrypt k získání bezplatného certifikátu.

Nejprve nainstalujte certbot:

sudo apt install certbot python3-certbot-nginx

Poté spusťte následující příkaz pro získání a automatickou konfiguraci SSL certifikátu:

sudo certbot --nginx -d example.com -d www.example.com

Aby nedošlo k vypršení, nastavte také automatické obnovení certifikátu.

4. Správa a řízení Nginx

Po instalaci a konfiguraci Nginx se musíte naučit, jak spouštět, zastavovat, načítat konfigurace a řešit problémy. Tato sekce pokrývá základní příkazy správy a techniky řešení problémů.

Základní příkazy Nginx

Na Ubuntu můžete Nginx spravovat pomocí příkazu systemctl. Zde jsou klíčové operace:

  1. Spustit Nginx
sudo systemctl start nginx
  1. Zastavit Nginx
sudo systemctl stop nginx
  1. Restartovat Nginx Vyžadováno při provádění zásadních změn konfigurace.
sudo systemctl restart nginx
  1. Znovu načíst Nginx Aplikovat změny konfigurace bez restartu.
sudo systemctl reload nginx
  1. Zkontrolovat stav Nginx Ověřit, zda Nginx běží správně.
sudo systemctl status nginx

Povolení automatického spouštění

Aby Nginx startoval automaticky po restartu systému:

  1. Povolit automatické spouštění
sudo systemctl enable nginx
  1. Zakázat automatické spouštění (pokud je potřeba)
sudo systemctl disable nginx

Kontrola logů pro odstraňování problémů

Pokud Nginx nefunguje podle očekávání, zkontrolujte logy a najděte příčinu.

  1. Zobrazit chybové logy
sudo tail -f /var/log/nginx/error.log
  1. Zobrazit přístupové logy
sudo tail -f /var/log/nginx/access.log

5. Konfigurace firewallu pro Nginx a zvýšení zabezpečení

Zabezpečení je při provozu Nginx klíčové. Tato sekce vysvětluje, jak nastavit porty pomocí firewallu Ubuntu (UFW) a posílit zabezpečení Nginx.

Otevírání portů pomocí UFW

UFW (Uncomplicated Firewall) je firewallový nástroj, který je v Ubuntu standardně zahrnut. Aby Nginx fungoval správně, je potřeba otevřít porty 80 (HTTP) a 443 (HTTPS).

  1. Zkontrolovat aktuální stav UFW
sudo ufw status
  1. Povolit provoz Nginx Spusťte následující příkaz pro otevření potřebných portů:
sudo ufw allow 'Nginx Full'
  1. Povolit UFW Pokud je firewall vypnutý, povolte jej:
sudo ufw enable

Další vylepšení zabezpečení

  1. Zakázat zbytečné HTTP metody Pro zvýšení zabezpečení zakázat zbytečné HTTP metody přidáním následujícího do konfiguračního souboru Nginx:
if ($request_method !~ ^(GET|POST|HEAD)$) {
    return 444;
}
  1. Zakázat výpis adresářů Zabránit veřejnému přístupu k obsahu adresářů přidáním:
autoindex off;
  1. Posílit SSL/TLS Použít silná šifrovací nastavení ve vaší SSL konfiguraci:
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers HIGH:!aNULL:!MD5;

6. Ladění výkonu Nginx a odstraňování problémů

Nginx je široce známý pro svůj vysoký výkon, ale správné ladění může dále zlepšit jeho efektivitu. Tato sekce pokrývá optimalizační techniky a běžná řešení problémů.

Ladění výkonu

1. Konfigurace pracovních procesů

Nginx používá víceprocesovou architekturu. Nastavení vhodného počtu pracovních procesů optimalizuje výkon.

Upravte konfigurační soubor /etc/nginx/nginx.conf a nastavte:

worker_processes auto;

Nastavení „auto“ automaticky upravuje počet pracovních procesů podle počtu jader CPU.

2. Zvýšení počtu pracovních spojení

Ve výchozím nastavení má každý pracovní proces omezený počet spojení. Zvýšení této hodnoty zlepšuje zpracování vysokého provozu.

Přidejte nebo upravte následující řádek v konfiguračním souboru:

worker_connections 1024;

3. Povolení HTTP/2

Povolení HTTP/2 zlepšuje efektivitu komunikace a urychluje načítání webu.

Upravte soubor /etc/nginx/sites-available/example.com a změňte direktivu listen následovně:

listen 443 ssl http2;

Poté znovu načtěte Nginx:

sudo systemctl reload nginx

4. Povolení komprese obsahu

Komprese souborů před jejich odesláním snižuje využití šířky pásma a zlepšuje dobu načítání.

Přidejte nebo povolte následující nastavení:

gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

5. Konfigurace cachování

Nastavení cachování snižuje opakované požadavky na statické zdroje.

Přidejte následující konfiguraci:

location ~* .(jpg|jpeg|png|gif|ico|css|js|woff|woff2|ttf|svg)$ {
    expires 30d;
    access_log off;
}

Běžné odstraňování problémů

1. Pomalé zpracování požadavků při vysokém zatížení

  • Příčina: Nedostatečný počet pracovních procesů nebo omezení připojení.
  • Řešení: Upravit počet pracovních procesů a připojení, nebo zvážit použití vyvažovače zátěže.

2. Chyba „403 Forbidden“

  • Příčina: Nesprávná direktiva root v konfiguračním souboru nebo nesprávná oprávnění souborů.
  • Řešení: Zkontrolovat direktivu root a aktualizovat oprávnění souborů:
sudo chmod -R 755 /var/www/example.com/html
sudo chown -R www-data:www-data /var/www/example.com/html

3. Problémy s časovým limitem serveru

  • Příčina: Dlouhá doba zpracování požadavku.
  • Řešení: Upravit nastavení časového limitu:
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_send_timeout 300;

4. Chyby při restartu Nginx

  • Příčina: Chyby v konfiguračním souboru.
  • Řešení: Otestovat konfiguraci před restartem:
sudo nginx -t

7. Shrnutí a další kroky

V tomto průvodci jsme se zabývali instalací, konfigurací a správou Nginx na Ubuntu. Podívejme se, co jsme se naučili, a prozkoumejme další kroky.

Shrnutí klíčových bodů

1. Instalace Nginx na Ubuntu

  • Připraveny potřebné balíčky a Nginx nainstalován pomocí APT.
  • Firewall nakonfigurován tak, aby povolil provoz Nginx.

2. Základní konfigurace

  • Pochopena struktura konfiguračního souboru Nginx a nastavení virtuálních hostitelů a SSL/TLS.

3. Správa Nginx

  • Naučeny základní příkazy pro spuštění, zastavení a načtení konfigurace Nginx.
  • Kontrola logů pro odstraňování problémů.

4. Zlepšení zabezpečení

  • Nakonfigurován UFW a aplikována další bezpečnostní nastavení.

5. Ladění výkonu a odstraňování problémů

  • Optimalizovány pracovní procesy, povolen HTTP/2 a nastaveno cachování.
  • Řešeny běžné problémy s Nginx.

Další kroky

Nyní, když máte základy Nginx na Ubuntu, zvažte následující kroky:

  • Naučte se pokročilé konfigurace, jako je vyvažování zátěže a reverzní proxy.
  • Zvyšte zabezpečení pomocí WAF a dalších bezpečnostních modulů Nginx.
  • Automatizujte nasazení pomocí Ansible nebo Dockeru.
  • Sledujte výkon pomocí nástrojů jako Prometheus a Grafana.

Aplikací těchto konceptů můžete efektivně provozovat a spravovat výkonný webový server s Nginx na Ubuntu.