Uživatelské nástroje

Nástroje pro tento web


nginx

Nginx

Nginx (vyslovováno jako „engine-X“) je výkonný, lehký a vysoce škálovatelný webový server a reverzní proxy server. Vyvinutý Igorom Sysoevem v roce 2002, dnes patří k nejrozšířenějším webovým serverům na světě (vedle Apache a Microsoft IIS).

Základní vlastnosti

  • Asynchronní, událostně řízená architektura – efektivně zvládá tisíce souběžných připojení s minimální spotřebou paměti.
  • Vhodný pro statický obsah, ale díky FastCGI, uWSGI a dalším rozhraním také pro dynamický obsah.
  • Reverzní proxy – může přesměrovávat požadavky na backend servery (např. PHP-FPM, Node.js, Python aplikace).
  • Load balancing – distribuce zátěže mezi více backend serverů.
  • SSL/TLS terminace – odlehčení backendů šifrováním/dešifrováním provozu.
  • Rychlá doručování statického obsahu – ideální pro obrázky, CSS, JavaScript atd.

Instalace

Na většině moderních Linuxových distribucí lze Nginx nainstalovat přímo z oficiálních repozitářů:

# Ubuntu/Debian
sudo apt update
sudo apt install nginx
 
# CentOS/RHEL/Fedora
sudo dnf install nginx          # Fedora / RHEL 8+
# nebo
sudo yum install nginx          # starší verze

Po instalaci je služba obvykle automaticky spuštěná a povolená při startu systému.

Základní konfigurace

Konfigurační soubory Nginx se nacházejí většinou v:

  • `/etc/nginx/nginx.conf` – hlavní konfigurační soubor
  • `/etc/nginx/sites-available/` – dostupné konfigurace webů
  • `/etc/nginx/sites-enabled/` – symbolické odkazy na aktivní konfigurace

Příklad základního server bloku

server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/example.com;
    index index.html index.htm;
 
    location / {
        try_files $uri $uri/ =404;
    }
}

SSL/TLS konfigurace (s Let's Encrypt)

server {
    listen 443 ssl http2;
    server_name example.com;
 
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
 
    root /var/www/example.com;
    index index.html;
 
    location / {
        try_files $uri $uri/ =404;
    }
}
 
# Přesměrování HTTP → HTTPS
server {
    listen 80;
    server_name example.com;
    return 301 https://$server_name$request_uri;
}

Běžné direktivy

Direktiva Popis
listen Port, na kterém server naslouchá (např. `80`, `443 ssl`)
server_name Název domény
root Kořenový adresář webu
index Výchozí soubor při požadavku na adresář
location Definuje chování pro určitou cestu URL
proxy_pass Přesměrování požadavku na backend server
try_files Hledá soubory v pořadí a vrací první nalezený nebo fallback

Použití jako reverzní proxy

location /api/ {
    proxy_pass http://127.0.0.1:3000/;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
}

Řešení běžných problémů

  • 502 Bad Gateway – backend server (např. PHP-FPM) není spuštěn nebo Nginx nemůže komunikovat s ním.
  • 403 Forbidden – problém s právy k souborům nebo adresářům.
  • 404 Not Found – špatně nastavený `root` nebo `location` blok.
  • Test konfigurace: `sudo nginx -t`
  • Reload konfigurace bez restartu: `sudo systemctl reload nginx`

Užitečné příkazy

sudo nginx -t                # test konfigurace
sudo systemctl reload nginx  # načtení nové konfigurace
sudo systemctl restart nginx # restart serveru
sudo systemctl status nginx  # stav služby

Externí zdroje

Viz také


*Poslední aktualizace: 2026-01-05*

nginx.txt · Poslední úprava: autor: admin