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

Oficiální dokumentace: nginx.org/en/docs

Nginx Wiki: wiki.nginx.org

Let’s Encrypt – certifikáty zdarma: letsencrypt.org

Viz také

Apache

PHP-FPM

Let's Encrypt

HTTP/2

TLS

*Poslední aktualizace: 2026-01-05*