Nginx — Webový server a reverse proxy
Nginx je vysoko výkonný webový server, reverse proxy a load balancer. Obsluhuje viac ako 30 % všetkých webových stránok na svete.
Čo Nginx robí?
- Webový server — servíruje statické súbory (HTML, CSS, JS, obrázky)
- Reverse proxy — presmeruje požiadavky na backend servery
- Load balancer — rozdeľuje záťaž medzi viacero serverov
- TLS terminácia — spracúva HTTPS šifrovanie
- Caching — ukladá odpovede do cache pre rýchlejšie odpovede
Konfigurácia
Hlavný konfiguračný súbor je /etc/nginx/nginx.conf. Virtuálne servery sa definujú v server blokoch:
server {
listen 80;
server_name example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name example.com;
ssl_certificate /etc/ssl/cert.pem;
ssl_certificate_key /etc/ssl/key.pem;
root /var/www/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
location /api/ {
proxy_pass http://backend:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Reverse Proxy
Nginx ako reverse proxy stojí pred aplikačnými servermi a:
- Ukrýva internú architektúru
- Pridáva SSL/TLS
- Cachuje odpovede
- Rozdeľuje záťaž
Load Balancing
upstream backend {
least_conn;
server app1:3000;
server app2:3000;
server app3:3000;
}
Stratégie: round-robin (default), least_conn, ip_hash, random.
Security Headers
add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header Content-Security-Policy "default-src 'self'" always;
add_header Strict-Transport-Security "max-age=31536000" always;
Nginx vs Apache
- Nginx — event-driven, lepší výkon pri statických súboroch a vysokom počte spojení
- Apache — process-based, flexibilnejší s
.htaccess, viac modulov
Best Practices
- Vždy presmerujte HTTP na HTTPS
- Používajte gzip kompresiu
- Nastavte vhodné cache hlavičky
- Limitujte rate požiadaviek na ochranu pred DDoS
- Monitorujte access a error logy
Nginx je neodmysliteľná súčasť modernej webovej infraštruktúry.