50 nejčastějších otázek a odpovědí v rozhovoru s Nginx (2026)

Nejčastější otázky a odpovědi na pohovoru o Nginxu

Příprava na pohovor v Nginxu vyžaduje předvídavost, jasnost a povědomí o tom, jak tazatelé dnes hodnotí skutečné operační znalosti. Otázky v pohovoru v Nginxu odhalují hloubku znalostí, schopnost rozhodování, řešení problémů a připravenost na produkci.

Tyto role otevírají cesty napříč cloudovou infrastrukturou, výkonnostním inženýrstvím a bezpečností, kde záleží na praktických konfiguracích. Zaměstnavatelé oceňují technické zkušenosti, odborné znalosti v dané oblasti a analýzy získané prací v terénu, což pomáhá absolventům, inženýrům střední úrovně a vedoucím pracovníkům aplikovat základní až pokročilé dovednosti v týmech pod vedením manažerů a vedoucích týmů.
Přečtěte si více ...

👉 Stažení PDF zdarma: Otázky a odpovědi k pohovoru s Nginx

Nejčastější otázky a odpovědi na pohovoru o Nginxu

1) Vysvětlete, co je NGINX a proč se hojně používá ve webové infrastruktuře.

NGINX je vysoce výkonný webový server s otevřeným zdrojovým kódem, který funguje také jako reverzní proxy, vyrovnávač zátěže a HTTP cache. Podporuje protokoly HTTP, HTTPS, SMTP, POP3 a IMAP. Architektura používá… event-driven, asynchronous model Díky tomu zvládá desítky tisíc simultánních připojení s nízkým využitím paměti a CPU. Díky této škálovatelnosti je NGINX obzvláště vhodný pro webové aplikace s vysokým provozem, mikroslužby a distribuované architektury. Například společnosti s velkým provozním zatížením (jako jsou platformy pro tvorbu obsahu nebo brány API) často preferují NGINX pro efektivní zpracování souběžných připojení a doručování statického obsahu.


2) Jak NGINX interně zpracovává HTTP požadavky (architektura řízená událostmi)?

Hlavní silnou stránkou NGINXu je jeho event-driven, non-blocking architectureMísto vytváření samostatného vlákna nebo procesu pro každý požadavek (jako u tradičních serverů) používá NGINX malou sadu pracovních procesů, které využívají asynchronní smyčky událostí. Každý pracovní proces může spravovat tisíce připojení čekáním na oznámení o připravenosti operačního systému a zpracováním událostí, když k nim dojde. Protože neblokuje I/O operace, může NGINX obsluhovat statický a proxy obsah s minimálními zdroji. Tento model je ideální pro případy použití s ​​vysokou souběžností, díky čemuž je efektivnější než servery založené na procesech při velkém zatížení.


3) Jaké jsou hlavní rozdíly mezi NGINX a Apache?

Přestože jsou NGINX i Apache populární webové servery, liší se architekturou, výkonem a designovými cíli:

Vzhled Nginx Apache
Model souběžnosti Řízeno událostmi (asynchronní, neblokující) Založené na procesech / vláknech (blokování)
Využití paměti Nízká hodnota na připojení Vyšší na připojení
Nejlepší případ použití Vysoká návštěvnost, statický obsah, vyvažování zátěže Dynamický obsah a bohatý ekosystém modulů
Škálovatelnost Škálování s menším počtem zdrojů Vyžaduje více hardwaru kvůli procesům
Manipulace s modulem Moduly vybrané při kompilaci Dynamické za běhu

Návrh NGINX optimalizuje výkon při zátěži, zatímco Apache poskytuje větší flexibilitu s dynamickými moduly a širokou jazykovou podporou.


4) Jaké jsou klíčové komponenty konfiguračního souboru NGINX?

Konfigurační soubor NGINX (výchozí cesta: /etc/nginx/nginx.conf) se skládá ze strukturovaných bloků direktiv, které určují chování NGINX:

  • Hlavní kontext: globální nastavení, jako například worker_processes, error_log, a pid
  • Blok událostí: spravuje připojení pracovníků a multiprocessing
  • Blok HTTP: obsahuje konfigurace pro zpracování HTTP (komprese, ukládání do mezipaměti, gzip atd.)
    • Blok serveru: definuje virtuální hostitele (domény a porty)
    • Blok umístění: definuje pravidla směrování a způsob zpracování specifických URI

Tyto bloky spolupracují na směrování požadavků, definování nastavení proxy serveru a konfiguraci SSL/TLS a ukládání do mezipaměti.


5) Jak bezpečně znovu načíst konfiguraci NGINX bez prostojů?

Obnovení NGINX s aktualizovanými konfiguracemi without interrupting active connections, použijete následující příkaz:

nginx -s reload

nebo na systémech používajících systemd:

sudo systemctl reload nginx

Tento příkaz signalizuje hlavnímu procesu, aby znovu načetl konfigurační soubory a elegantně restartoval procesy bez přerušení stávajících připojení. Znalost provádění takových bezproblémových opětovných načtení je nezbytná v prostředích vyžadujících vysokou dostupnost.


6) Popište, jak nastavit NGINX jako reverzní proxy.

Reverzní proxy přeposílá požadavky klientů na backendové servery (upstream group) a poté vrací odpověď. Níže je uveden typický blok reverzní proxy NGINX:

http {
    upstream backend {
        server backend1.example.com;
        server backend2.example.com;
    }

    server {
        listen 80;
        server_name example.com;

        location / {
            proxy_pass http://backend;
            proxy_set_header Host $host;
        }
    }
}

Toto nastavení zlepšuje zabezpečení, zajišťuje rozložení zátěže a umožňuje ukládání do mezipaměti nebo omezení rychlosti mezi klienty a aplikačními servery.


7) Vysvětlete master a worker procesy NGINX.

V NGINXu:

  • Jedno Hlavní proces spravuje konfiguraci, spouští pracovní procesy a zpracovává privilegované operace, jako je vazba na porty.
  • Pracovní procesy provádět skutečné zpracování požadavků – zpracování příchozích připojení a spuštění nakonfigurovaných pravidel.

Vícenásobné zpracování rolí zlepšuje souběžnost a lze jej ladit v závislosti na dostupných jádrech CPU a požadavcích na provoz. Rozdělení rolí zvyšuje výkon a stabilitu.


8) Jak lze v NGINX omezit zpracování nedefinovaných názvů serverů?

Zamítnutí požadavků bez platného Host hlavička v NGINX:

server {
    listen 80;
    server_name "";
    return 444;
}

Tato konfigurace vrací kód 444, nestandardní stav NGINX, který ukončí připojení bez odpovědi, čímž efektivně odmítne nedefinované hostitele a zlepší zabezpečení.


9) K čemu se používá modul ngx_http_upstream_module?

Jedno ngx_http_upstream_module definuje groups of backend servers (upstream), kterým může NGINX předávat požadavky pomocí direktiv, jako například proxy_pass, fastcgi_passnebo uwsgi_passTo umožňuje flexibilitu při škálování aplikací v prostředích s vyváženou zátěží. Když je seskupeno více backendových serverů, NGINX může distribuovat provoz na základě definovaných zásad, s podporou round-robin a dalších strategií.


10) Popište, jak se NGINX používá k obsluze statického a dynamického obsahu.

NGINX je vysoce efektivní při obsluze statické soubory (HTML, CSS, obrázky) přímo pomocí optimalizované smyčky událostí a mechanismů pro vstup/výstup souborů. Pro dynamický obsahNGINX předává požadavky backendovým procesorům, jako je PHP-FPM, Python Servery WSGI nebo aplikační frameworky prostřednictvím mechanismů FastCGI / proxy. Toto oddělení umožňuje NGINX vyniknout jako statický souborový server a zároveň využívat backendové služby pro dynamické generování, což zajišťuje optimální výkon a škálovatelnost.


11) Jak funguje vyvažování zátěže v NGINX a jaké jsou k dispozici různé metody?

NGINX poskytuje robustní vyvažování zatížení přes upstream směrnice, distribuce provozu mezi více backendových serverů pro optimalizaci výkonu a zajištění vysoké dostupnosti. Podporuje několik metod:

Metoda Description Nejlepší případ použití
Round Robin Výchozí metoda, která postupně rotuje požadavky mezi servery. Rovnoměrně rozložené pracovní zátěže.
Nejméně spojení Odesílá požadavky na server s nejmenším počtem aktivních připojení. Dlouhotrvající sezení.
IP hash Používá IP adresu klienta k určení výběru serveru. Perzistence relace.
Nejméně času Zůstatky na základě doby odezvy a počtu připojení. Aplikace citlivé na latenci.

NGINX může také provádět zdravotní prohlídky dynamicky odstraňovat nefunkční servery a zajistit tak plynulý tok provozu a odolnost.


12) Jaký je rozdíl mezi NGINX s otevřeným zdrojovým kódem a NGINX Plus?

Nginx Open Source je komunitní verze nabízející základní funkce webového serveru, proxy a vyvažování zátěže. NGINX Plus je komerční edice, která rozšiřuje tyto funkce o vylepšení na podnikové úrovni, jako je pokročilé monitorování, perzistence relace, dynamická rekonfigurace a aktivní kontroly stavu.

vlastnost NGINX Open Source NGINX Plus
Vyrovnávání zatížení Základní (kulatý systém, IP hash) Pokročilé (nejmenší čas, dynamická rekonfigurace)
monitorování Ruční / externí nástroje Vestavěný dashboard a API
Caching Basic Vylepšeno s regulací proplachování
Podpora Pouze komunita Podpora a aktualizace pro podniky

Organizace s kritickými úlohami si často vybírají NGINX Plus pro jeho zvýšenou spolehlivost a sledovatelnost.


13) Jak implementujete ukládání do mezipaměti v NGINX?

Ukládání do mezipaměti v NGINX zlepšuje rychlost odezvy a snižuje zátěž backendu lokálním ukládáním často používaného obsahu. Je to povoleno pomocí proxy_cache směrnice. Příklad konfigurace:

proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=1g;
server {
    location / {
        proxy_cache my_cache;
        proxy_pass http://backend;
    }
}

Odpovědi uložené v mezipaměti se po příchodu odpovídajícího požadavku odesílají přímo z disku, čímž se přeskočí zpracování před nadřazeným zdrojem. Vypršení platnosti mezipaměti můžete řídit pomocí proxy_cache_valid a vyloučit konkrétní URI pomocí proxy_no_cacheTento mechanismus je klíčový pro prostředí s vysokou návštěvností, jako jsou zpravodajské weby nebo weby elektronického obchodování.


14) Vysvětlete účel a použití direktivy „try_files“.

Jedno try_files Direktiva kontroluje existenci souborů v zadaném pořadí před předáním požadavku do záložního umístění. Běžně se používá pro statické směrování webu or jednostránkové aplikace (SPA).

Příklad:

location / {
    try_files $uri $uri/ /index.html;
}

Zde NGINX nejprve zkontroluje, zda požadovaný URI odpovídá souboru, poté adresáři a nakonec směruje neshodné požadavky do /index.htmlTo zlepšuje efektivitu a uživatelský komfort tím, že soubory z mezipaměti nebo statické soubory poskytuje přímo, čímž se zabrání zbytečným voláním na straně backendu.


15) Jak dokáže NGINX zpracovat ukončení HTTPS a SSL/TLS?

NGINX funguje jako proxy server pro ukončení SSL/TLS, který zpracovává šifrování a dešifrování na serverové vrstvě před přeposláním nešifrovaných požadavků nadřazeným službám. Příklad konfigurace:

server {
    listen 443 ssl;
    server_name example.com;
    ssl_certificate /etc/ssl/certs/example.crt;
    ssl_certificate_key /etc/ssl/private/example.key;
    location / {
        proxy_pass http://backend;
    }
}

Podporuje HTTP / 2, Sešívání OCSP, HSTS, a moderní šifrovací sady, což umožňuje bezpečnou a vysoce výkonnou komunikaci. Ukončení SSL na NGINX snižuje režijní náklady na šifrování na backendových serverech a zjednodušuje správu certifikátů.


16) Jaký je rozdíl mezi přepisováním a přesměrováním v NGINX?

Oba přepsat si přesměrování upravují způsob směrování požadavků, ale zásadně se liší:

Vzhled Přepsat Přesměrování
Typ Interní přepisování URL adres Přesměrování externího klienta
Kód odezvy 200 (interní) 301/302 (přesměrování HTTP)
Viditelnost Transparentní pro uživatele Klient vidí novou URL adresu
Použijte pouzdro SEO optimalizované URL adresy, směrování Migrace domény, vynucení HTTPS

Příklad:

rewrite ^/oldpage$ /newpage permanent;  # Redirect
rewrite ^/img/(.*)$ /assets/$1 break;   # Rewrite

Pochopení tohoto rozdílu je klíčové pro efektivní optimalizaci SEO a logiky směrování.


17) Jak chráníte NGINX před běžnými zranitelnostmi?

Zpevnění zabezpečení zahrnuje kombinaci osvědčených postupů:

  • Zakázat tokeny serveru: server_tokens off;
  • Metody omezení požadavků: Povoleny pouze GET, POST, HEAD.
  • Omezení přetečení vyrovnávací paměti: Konfigurace client_max_body_size si client_body_buffer_size.
  • Používejte HTTPS s moderními šiframi.
  • Povolit omezení rychlosti přes limit_req_zone.
  • Skrýt informace o verzi a zakázat výpis adresářů.

Navíc pomocí a Firewall webových aplikací (WAF) jako ModSecurity with NGINX dokáže filtrovat škodlivý provoz. Pravidelná aktualizace NGINX a instalace bezpečnostních záplat je nezbytná pro prevenci zero-day exploitů.


18) Co jsou proměnné NGINX a jak se používají v konfiguracích?

Proměnné NGINX ukládají dynamická data používaná v konfiguracích a zpracování protokolů. Mohou představovat hlavičky požadavků, IP adresy klientů nebo vypočítané hodnoty. Mezi příklady patří $remote_addr, $host, $uri, $request_method, a $upstream_addr.

Například:

log_format custom '$remote_addr - $host - $uri';

Proměnné zvyšují flexibilitu a umožňují podmíněné směrování a vlastní protokolování. Můžete také definovat vlastní proměnné pomocí set směrnice, která pomáhá s návrhem modulární konfigurace.


19) Jak lze nastavit omezení rychlosti v NGINX?

Omezení rychlosti řídí, jak často mohou uživatelé odesílat požadavky, a chrání tak před útoky hrubou silou a DDoS. Konfiguruje se pomocí limit_req_zone směrnice:

limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;
server {
    location / {
        limit_req zone=mylimit burst=5;
    }
}

To umožňuje jeden požadavek za sekundu s dávkou pěti. NGINX zahazuje nadbytečné požadavky nebo je zpožďuje na základě konfigurace. Omezení rychlosti zajišťuje spravedlivé využití zdrojů a zabraňuje přetížení serveru.


20) Jaké jsou výhody a nevýhody použití NGINX jako reverzní proxy?

NGINX jako reverzní proxy nabízí řadu výhod, ale také určité nevýhody:

Výhody Nevýhody
Vysoký výkon a zpracování souběžnosti Vyžaduje ruční ladění pro rozsáhlá nasazení
Ukončení SSL a centralizované zabezpečení Omezená podpora dynamických modulů (během kompilace)
Podpora vyvažování zátěže a ukládání do mezipaměti Složitá konfigurace pro nové uživatele
Filtrování aplikační vrstvy Nedostatek nativního dynamického spouštění obsahu

Jeho výhody ve většině podnikových scénářů daleko převyšují jeho omezení, což z NGINX činí nepostradatelnou součást moderní webové infrastruktury.


21) Jak můžete monitorovat výkon a stav NGINX v produkčním prostředí?

Monitorování NGINX je klíčové pro identifikaci úzkých míst, selhání a abnormálního chování provozu. Lze použít několik přístupů:

  1. Vestavěný stavový modul (stub_status):

    Zobrazuje aktivní připojení, zpracované požadavky a stavy čtení/zápisu. Příklad:

    location /nginx_status {
        stub_status;
        allow 127.0.0.1;
        deny all;
    }
    
  2. Řídicí panel NGINX Plus: Poskytuje metriky v reálném čase prostřednictvím REST API a grafického rozhraní.
  3. Integrace třetích stran: Nástroje jako Prometheus, Grafana, Datadog nebo ELK mohou shromažďovat metriky a protokoly.
  4. Protokoly přístupu a chyb: Pravidelná rotace protokolů a jejich analýza pomocí nástrojů jako GoAccess nebo AWStats zlepšuje sledovatelnost.

Monitorování pomáhá zajistit provozuschopnost, rychlou detekci poruch a plánování kapacity.


22) Jaký je rozdíl mezi direktivami proxy_pass a fastcgi_pass?

Obě direktivy přeposílá požadavky na backendové služby, ale jsou navrženy pro různé protokoly:

Směrnice Účel Backendový protokol Příklad Použití
proxy_pass Přeposílá HTTP nebo HTTPS požadavky na backendové servery HTTP Revjiné proxyování webových API nebo mikroslužeb
fastcgi_pass Odesílá požadavky procesoru FastCGI FastCGI PHP-FPM, Python FastCGI aplikace

Příklad:

location /api/ {
    proxy_pass http://backend;
}
location ~ \.php$ {
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}

Stručně řečeno, použijte proxy_pass pro generické HTTP backendy a fastcgi_pass pro dynamické běhové prostředí jazyků, jako je PHP.


23) Jak lze nakonfigurovat gzip kompresi v NGINX a jaké jsou její výhody?

Povolení komprese Gzip v NGINX snižuje využití šířky pásma a zkracuje dobu načítání kompresí textových odpovědí před jejich odesláním klientům.

Příklad konfigurace:

gzip on;
gzip_types text/plain text/css application/json application/javascript;
gzip_min_length 1024;
gzip_comp_level 6;
gzip_vary on;

Výhody:

  • Snižuje velikost přenášených souborů až o 70 %.
  • Zlepšuje skóre času do prvního bajtu (TTFB) a výkonu stránky.
  • Šetří náklady na šířku pásma, což je výhodné zejména pro mobilní uživatele.

Nemělo by se však používat u již komprimovaných souborů (např. .zip, .jpg, .png), aby se zabránilo zatížení CPU.


24) Jaké jsou osvědčené postupy pro ladění NGINX pro vysokou návštěvnost?

Optimalizace pro vysokou návštěvnost zahrnuje pečlivé ladění zdrojů a konfiguračních parametrů:

Oblast Směrnice Doporučená praxe
Pracovníci worker_processes auto; Shoda jader CPU
Připojení worker_connections 4096; Zvýšení souběžnosti
Udržet naživu keepalive_timeout 65; Optimalizace opětovného použití klienta
Soubor Descriptors OS ulimit -n Zvyšte limity pro otevřené sockety
Caching proxy_cache_path Snižte zátěž backendu
Gzip gzip on; Komprimovat textové odpovědi

Navíc pomocí asynchronní diskový I/O, vyvažování zatížení, a kontroly stavu předcházejících zajišťuje stabilitu a rychlost i při velkém množství souběžných požadavků.


25) Jak NGINX zpracovává připojení WebSocket?

WebSockety umožňují obousměrnou komunikaci mezi klientem a serverem – což je klíčové pro aplikace pracující v reálném čase. NGINX to nativně podporuje prostřednictvím správného přeposílání hlaviček.

Příklad konfigurace:

location /ws/ {
    proxy_pass http://backend;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}

Klíčové body:

  • Jedno Upgrade si Connection záhlaví jsou povinná.
  • Ujistěte se, že NGINX používá HTTP/1.1 pro trvalá TCP připojení.
  • Vyrovnávání zátěže pomocí WebSocketů může vyžadovat trvalé relace. ip_hash.

Tato konfigurace podporuje aplikace jako chat, obchodování s akciemi nebo hraní her.


26) Jaký je účel direktivy „worker_rlimit_nofile“?

worker_rlimit_nofile definuje maximální počet otevřených deskriptorů souborů dostupných pro pracovní procesy. Tento limit přímo ovlivňuje, kolik simultánních připojení dokáže NGINX zpracovat. Příklad:

worker_rlimit_nofile 100000;

Zvýšení tohoto limitu je zásadní pro systémy s vysokou souběžností (jako jsou brány API nebo streamovací platformy). Limit operačního systému (ulimit -n) musí být také zvýšena, aby odpovídala této hodnotě kvůli konzistenci.


27) Jak lze NGINX použít pro automatické přepisování URL adres nebo přesměrování na HTTPS?

Přesměrování HTTP na HTTPS zajišťuje bezpečnou komunikaci. Příklad:

server {
    listen 80;
    server_name example.com;
    return 301 https://$host$request_uri;
}

Tato konfigurace vydává Trvalé přesměrování 301 z HTTP na HTTPS. Pro přesnější kontrolu mohou pravidla přepisování vynutit přesměrování specifické pro cestu:

rewrite ^/oldpath$ /newpath permanent;

Automatické vynucování HTTPS zlepšuje hodnocení v SEO, zabraňuje útokům typu „man-in-the-middle“ a udržuje konzistentní uživatelský zážitek.


28) Jaké jsou některé běžné příčiny chyb „502 Bad Gateway“ v NGINX?

Chyba „502 Bad Gateway“ znamená, že NGINX, který funguje jako proxy, se nepodařilo obdržet platnou odpověď od nadřazeného serveru. Mezi běžné příčiny patří:

  • Pád nebo nedostupnost backendového serveru.
  • Nesprávný proxy_pass URL nebo cesta k soketu.
  • Časový limit pro upstream (proxy_read_timeout příliš nízká).
  • Firewall nebo SELinux blokují připojení k nadřazenému serveru.
  • Špatně nakonfigurované parametry FastCGI (pro PHP).

Pro ladění zkontrolujte protokoly chyb (/var/log/nginx/error.log), ověřte dosažitelnost upstreamu a otestujte odpovědi backendu přímo prostřednictvím curl.


29) Jak NGINX podporuje mikroslužby a kontejnerové architektury (např. Docker, Kubernetes)?

NGINX je ideální pro mikroservisní prostředí díky své lehké konstrukci a funkci reverzní proxy. V Dockeru nebo Kubernetes slouží jako:

  • Vstupní kontroler: Spravuje externí HTTP/S provoz do interních služeb.
  • Servisní brána: Provádí směrování, vyvažování zátěže a ověřování.
  • Proxy s postranním vozíkem: Zvyšuje odolnost a pozorovatelnost v sítích služeb (např. Istio).

Konfigurace NGINX lze dynamicky aktualizovat prostřednictvím Kubernetes ConfigMaps, což umožňuje centralizované řízení provozu a správu SSL. Jeho modulární přístup se perfektně hodí pro kontejnerizované a cloudově nativní nasazení.


30) Jaké jsou různé způsoby, jak zlepšit zabezpečení NGINX pro produkční systémy?

Zlepšení zabezpečení NGINX vyžaduje vícevrstvou konfiguraci:

  1. Ochrana proti SSL/TLS: Používejte moderní šifry, deaktivujte SSLv3/TLSv1.0.
  2. Omezení HTTP metod: Povolte pouze bezpečná slovesa (GET, POST, HEAD).
  3. Bezpečnostní záhlaví:
    add_header X-Frame-Options "DENY";
    add_header X-Content-Type-Options "nosniff";
    add_header X-XSS-Protection "1; mode=block";
    
  4. Skrýt informace o verzi: server_tokens off;
  5. Povolte omezení rychlosti a řízení přístupu.
  6. Integrace WAF nebo Fail2Ban pro prevenci hrubé síly.

Tato opatření dohromady vytvářejí zesílené prostředí NGINX produkční úrovně, odolné vůči běžným zneužitím.


31) Jak lze efektivně ladit problémy s NGINX?

Ladění NGINX zahrnuje systematickou analýzu protokolů, konfiguračních souborů a stavů procesů. Mezi klíčové kroky patří:

  1. Zkontrolujte syntaxi:
  2. nginx -t
  3. Ověřuje konfiguraci před opětovným načtením.
  4. Povolit protokolování ladění:

    error_log /var/log/nginx/error.log debug;
  5. Poskytuje podrobnou diagnostiku za běhu.
  6. Analýza protokolů přístupu: Detekce kódů odpovědí a vzorů požadavků pomocí:

    tail -f /var/log/nginx/access.log
  7. Test připojení: Použijte curl -v or wget ověřit dosažitelnost backendu.
  8. Sledování aktivních připojení: Přes stub_status or netstat.

Pochopení pracovních procesů NGINX, limitů vyrovnávací paměti a reakcí upstreamu pomáhá rychle odhalit úzká hrdla v produkčních systémech.


32) Jak se konfiguruje protokolování NGINX a jaké jsou vlastní formáty protokolů?

NGINX poskytuje flexibilní mechanismy protokolování prostřednictvím access_log si error_log směrnice.

Příklad konfigurace:

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                '$status $body_bytes_sent "$http_referer" '
                '"$http_user_agent" "$request_time"';

access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log warn;

Můžete definovat vlastní formáty zahrnout metriky, jako například $upstream_addr, $request_timenebo $bytes_sent.

Pro pokročilou pozorovatelnost jsou protokoly často odesílány do ELK, Loki nebo Splunk pro analýzu a dashboarding v reálném čase.


33) Jaká je role direktivy proxy_buffering v NGINX?

proxy_buffering řídí, zda NGINX ukládá odpovědi z nadřazených serverů do vyrovnávací paměti před jejich odesláním klientům.

nastavení Description Použijte pouzdro
proxy_buffering on; Buffers celou odezvou pro optimalizovanou propustnost Výchozí; zlepšuje výkon
proxy_buffering off; Streamuje data přímo klientům bez ukládání do vyrovnávací paměti Streamování v reálném čase nebo API

Například pro zakázání ukládání do vyrovnávací paměti:

location /stream/ {
    proxy_buffering off;
}

Zakázání ukládání do vyrovnávací paměti je ideální pro chatovací nebo streamovací služby, ale může snížit propustnost běžného webového provozu.


34) Vysvětlete, jak lze zneplatnit nebo vymazat mezipaměť NGINX.

NGINX Open Source neobsahuje vestavěné čištění mezipaměti, ale lze ho dosáhnout několika způsoby:

  1. Ruční čištění: Odstraňte soubory z adresáře mezipaměti.
    rm -rf /var/cache/nginx/*
  2. Modul třetí strany: Použijte ngx_cache_purge pro vyčištění pomocí HTTP požadavku:
    location ~ /purge(/.*) {
        proxy_cache_purge my_cache $host$1;
    }
    
  3. Funkce NGINX Plus: Umožňuje dynamické čištění mezipaměti pomocí API.

Čištění zajišťuje rychlé nahrazení zastaralého obsahu, čímž se zachovává aktuálnost a konzistence obsahu napříč CDN nebo víceuzlovými nasazeními.


35) Jak NGINX zpracovává časové limity připojení?

NGINX poskytuje několik direktiv timeout pro řízení, jak dlouho čeká na odpovědi klienta nebo nadřazeného serveru:

Směrnice Účel Výchozí (výchozí)
client_body_timeout Doba čekání na tělo klienta 60
client_header_timeout Doba čekání na záhlaví klienta 60
keepalive_timeout Nečinná keepalive připojení 75
send_timeout Čas pro odeslání dat klientovi 60
proxy_read_timeout Doba čekání na odpověď odesílatele 60

Správné ladění zabraňuje zbytečným výpadkům a zajišťuje plynulejší uživatelský zážitek i za proměnlivých síťových podmínek.


36) Jak implementujete modrozelené nasazení pomocí NGINX?

V modrozelené nasazeníběží současně dvě prostředí (modrá = aktivní, zelená = pohotovostní). NGINX funguje jako směrovač provozu mezi nimi.

Příklad konfigurace:

upstream app_cluster {
    server blue.example.com;
    #server green.example.com; # Uncomment during switch
}
server {
    location / {
        proxy_pass http://app_cluster;
    }
}

Po otestování a ověření nové verze (zelená) se provoz přepne aktualizací definice upstreamu a opětovným načtením NGINX (nginx -s reload).

Tato metoda zajišťuje nulové prostoje během aktualizací aplikací nebo vrácení předchozích verzí.


37) Co je limitující burst rychlosti a jak zlepšuje výkon NGINX?

Jedno roztržení Parametr v omezení rychlosti umožňuje dočasný průchod krátkými špičkami provozu bez okamžitého odmítnutí.

Příklad:

limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;
location /api/ {
    limit_req zone=mylimit burst=5 nodelay;
}

Zde je před použitím omezení okamžitě přijato pět dalších požadavků.

Tato technika vyhlazuje nárůsty provozu a udržuje konzistentní uživatelský zážitek bez zahlcení backendových systémů.


38) Jak NGINX zvládá IPv6 a dual-stack prostředí?

NGINX plně podporuje IPv6 v konfiguraci serveru i upstreamu. Příklad:

server {
    listen [::]:80 ipv6only=on;
    server_name example.com;
}

Podpora duálního stacku (IPv4 + IPv6) je dosažena zahrnutím obou:

listen 80;
listen [::]:80;

Kompatibilita s IPv6 zajišťuje širší přístupnost, zejména pro mobilní a mezinárodní klienty, a je zásadní pro dodržování moderních internetových standardů.


39) Jak se konfigurují sticky sessions v NGINX load balancing?

Pevné relace zajišťují, že požadavky od stejného klienta jsou vždy směrovány na stejný backendový server.

  1. Použití ip_hash:
    upstream backend {
        ip_hash;
        server app1.example.com;
        server app2.example.com;
    }
    
  2. Lepkavý soubor cookie NGINX Plus:
    Pokročilá perzistence relace s konfigurovatelnými soubory cookie.

Pevné relace jsou zásadní pro stavové aplikace, jako jsou uživatelské dashboardy nebo nákupní košíky, protože zajišťují konzistenci dat relací bez sdíleného úložiště.


40) Jaké jsou hlavní úrovně protokolování v NGINX a jak se liší?

NGINX podporuje hierarchické úrovně protokolování pro řízení podrobnosti v protokolu chyb.

Úroveň Description
debug Podrobné informace o řešení problémů (velmi obsáhlé)
info Obecné informace o běhovém prostředí
notice Významné, ale nekritické události
warn Potenciální problémy nebo nesprávné konfigurace
error Operacionální chyby vyžadující pozornost
crit, alert, emerg Kritické selhání a systémová upozornění

Příklad konfigurace:

error_log /var/log/nginx/error.log warn;

Úprava úrovní protokolování podle prostředí (ladění ve stagingovém režimu, varování v produkčním režimu) pomáhá udržovat rovnováhu mezi viditelností a výkonem.


41) Jak porovnáváte výkon NGINX?

Benchmarking NGINX zahrnuje měření propustnosti, latence a souběžnosti za účelem identifikace úzkých míst v konfiguraci. Mezi běžné nástroje patří:

ApacheBench (ab):

ab -n 10000 -c 100 http://example.com/
  • Testy vyžadují objem a souběžnost.
  • práce: Poskytuje podrobné percentily latence a míry požadavků.
  • obléhání / httperf: Simuluje zatížení dopravou v reálném světě.
  • Grafana + Prometheus: Sleduje metriky živého výkonu.

Benchmarking by měl měřit parametry jako requests per second (RPS), time per request, a error rate.

Ladění proměnných jako worker_processes, worker_connections, a keepalive_timeout výrazně zlepšuje pozorovanou propustnost.


42) Jak se může NGINX integrovat s CI/CD pipelines?

NGINX se bezproblémově integruje s CI / CD pro automatizované nasazení, testování a správu konfigurace. Mezi běžné přístupy patří:

  • Infrastruktura jako kód (IaC): Spravujte konfigurace pomocí grafů Ansible, Terraform nebo Helm.
  • Docker kontejnery: Vytvářejte a nasazujte obrazy NGINX pomocí nástrojů CI (Jenkins, GitLab CI nebo GitHub Actions).
  • Automatické testování: Ověřte konfigurace pomocí nginx -t ve fázích potrubí.
  • Modrozelená / Canary Automatizace nasazení: Dynamicky aktualizujte nadřazené servery během zavádění.

Příklad úryvku CI z GitLabu:

deploy:
  script:
    - nginx -t
    - systemctl reload nginx

Automatizované nasazení zajišťuje konzistentní, verzově řízené a spolehlivé nasazení NGINX.


43) Vysvětlete roli NGINX Ingress Controlleru v Kubernetes.

Jedno Řadič vstupu NGINX Spravuje příchozí provoz do služeb Kubernetes. Dynamicky převádí zdroje Kubernetes Ingress do konfigurací NGINX.

Klíčové funkce:

  • Směruje HTTP/S požadavky na správnou službu.
  • Nabízí ukončení SSL, omezení rychlosti a přepisování URL.
  • Podporuje vyvažování zátěže mezi pody.
  • Umožňuje anotace pro detailní řízení (např. rewrite-target, proxy-body-size).

Příklad vstupního YAML:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: web-ingress
  annotations:    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
    - host: myapp.example.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: web-service
                port:
                  number: 80

Tato architektura odděluje logiku směrování provozu od nasazení kontejnerů pro flexibilní škálovatelnost.


44) Jak NGINX zpracovává HTTP/2 a jaké jsou jeho výhody?

NGINX plně podporuje HTTP / 2, nástupce HTTP/1.1, který zlepšuje efektivitu díky multiplexování a kompresi hlaviček.

Chcete-li povolit HTTP/2:

server {
    listen 443 ssl http2;
    ...
}

Výhody:

vlastnost Description
Multiplexing Více požadavků na TCP připojení
Komprese záhlaví (HPACK) Snižuje využití šířky pásma
Server Push Preventivně odesílá datové zdroje klientům
Rychlejší TLS Zjednodušené bezpečné podání ruky

HTTP/2 drasticky snižuje latenci a dobu načítání stránek, zejména u moderních webových aplikací s velkým množstvím datových zdrojů.


45) Jaký je rozdíl mezi upstreamovým keepalive a opětovným použitím připojení v NGINX?

Upstream keepalive udržuje trvalá připojení k backendovým serverům, čímž snižuje režii TCP handshake. Příklad.

upstream backend {
    server app1.example.com;
    keepalive 32;
}

Rozdíl:

Vzhled Udržet naživu Opětovné použití připojení
Rozsah Mezi NGINX a upstreamem Mezi NGINX a klienty
Účel Optimalizace backendu Výkon frontendu
Konfigurace keepalive uvnitř upstream keepalive_timeout in server blokovat

Obě techniky snižují latenci, ale obsluhují různé komunikační vrstvy (na straně klienta vs. na straně serveru).


46) Jak lze dynamicky překonfigurovat NGINX bez jeho restartu?

Dynamické použití nových konfigurací bez prostojů, použijte reload mechanismus:

nginx -t && nginx -s reload

To signalizuje, hlavní proces spouštět nové workery s aktualizovanými konfiguracemi a zároveň elegantně vypnout ty staré.

V NGINX Plus lze provádět změny přes API (např. dynamické přidávání upstreamových serverů):

curl --request POST \
  --url http://localhost:8080/api/3/http/upstreams/backend/servers \
  --header 'Content-Type: application/json' \
  --data-raw '{"server":"10.0.0.12"}'

Tato funkce podporuje nasazení s nulovými prostoji v moderních DevOps kanálech.


47) Jaké jsou klíčové rozdíly mezi reverzní proxy a forward proxy v NGINX?

Vzhled Reverse Proxy Dopředný proxy
Viditelnost klienta Klienti nevědí o backendových serverech Servery nevědí o identitě klienta
Primární použití Vyvažování zátěže, ukládání do mezipaměti, ukončení SSL Filtrování, anonymita, řízení přístupu
Běžný případ použití Distribuce webové návštěvnosti Firemní nebo zabezpečené odchozí prohlížení
Podpora NGINX Nativní a široce používané Vyžaduje vlastní konfiguraci

Příklad (forward proxy):

location / {
    proxy_pass $scheme://$http_host$request_uri;
    proxy_set_header Host $http_host;
}

RevErse proxy zůstává dominantním případem použití, zejména pro API brány a architektury mikroslužeb.


48) Jak lze NGINX použít pro omezování a omezování rychlosti API?

Omezení rychlosti chrání API před zneužitím a zajišťuje férové ​​používání. Příklad konfigurace:

limit_req_zone $binary_remote_addr zone=api_limit:10m rate=10r/s;
server {
    location /api/ {
        limit_req zone=api_limit burst=20 nodelay;
        proxy_pass http://backend;
    }
}

Mechanismus:

  • limit_req_zoneDefinuje zónu a rychlost sdílené paměti.
  • burstUmožňuje omezené dočasné špičky.
  • nodelayOkamžitě vynucuje limity.

Tato konfigurace zajišťuje, že každá IP adresa klienta může provádět pouze 10 požadavků za sekundu a zároveň umožňuje krátké intervaly.


49) Jaké jsou typické případy použití NGINX v podnikových DevOps prostředích?

V podnikových DevOps ekosystémech plní NGINX několik klíčových rolí:

  1. Webový server: Vysoce výkonné doručování statického obsahu.
  2. Revjiný proxy / vyrovnávač zátěže: Řízení provozu napříč mikroslužbami.
  3. Brána API: Autentizace, směrování a omezování.
  4. Vstupní kontroler: Pro clustery Kubernetes.
  5. Vrstva mezipaměti obsahu: Snižuje zátěž backendu.
  6. Koncový bod ukončení SSL: Centralizovaná správa certifikátů.
  7. Monitorovací koncový bod: Integrace metrik a pozorovatelnosti.

Díky nízké hmotnosti a modulárnímu designu je NGINX nepostradatelný v CI/CD pipelines, hybridních cloudech a vysoce dostupných klastrech.


50) Jaké jsou hlavní rozdíly mezi NGINX a HAProxy pro vyvažování zátěže?

Oba jsou vysoce výkonné vyrovnávače zátěže, ale liší se zaměřením a architekturou:

vlastnost Nginx HAProxy
Primární role Webový server + reverzní proxy Vyhrazený vyrovnávač zátěže TCP/HTTP
Jednoduchost konfigurace Snadnější pro webové úlohy Komplexnější, ale podrobnější kontrola
Podpora vrstev L7 (HTTP), částečný L4 L4 a L7 plné
Dynamická rekonfigurace Omezené (otevřené) Aktualizace nativního běhového prostředí
Výkon Vynikající pro smíšené pracovní zátěže Vynikající pro vyvažování zátěže
Další funkce Ukládání do mezipaměti, komprese, statický obsah Zdravotní prohlídky, tabulky s paličkami

Podniky se často slučují NGINX (frontend) si HAProxy (backend) pro optimální směrování a škálovatelnost.


🔍 Nejčastější otázky na pohovoru s NGINX s reálnými scénáři a strategickými odpověďmi

1) Co je NGINX a proč se běžně používá v produkčním prostředí?

Očekává se od kandidáta: Tazatel chce posoudit vaše základní znalosti NGINX a vaše chápání jeho praktické hodnoty v reálných systémech.

Příklad odpovědi: „NGINX je vysoce výkonný webový server a reverzní proxy známý pro svou událostmi řízenou architekturu. Běžně se používá v produkčních prostředích, protože dokáže efektivně zpracovat velký počet souběžných připojení a zároveň spotřebovává méně systémových prostředků než tradiční webové servery.“


2) Můžete vysvětlit rozdíl mezi NGINX a Apache?

Očekává se od kandidáta: Tazatel hodnotí vaši schopnost porovnávat technologie a vybrat ten správný nástroj na základě případů použití.

Příklad odpovědi: „NGINX používá asynchronní, neblokující architekturu, díky které je efektivnější pro zpracování vysokého provozu a statického obsahu. Apache používá procesně řízený model, který může být flexibilnější pro dynamické konfigurace, ale při velkém zatížení může spotřebovávat více zdrojů.“


3) Jak funguje NGINX jako reverzní proxy?

Očekává se od kandidáta: Tazatel si chce ověřit vaše pochopení konceptů reverzní proxy a toho, jak NGINX zapadá do moderních architektur.

Příklad odpovědi: „NGINX funguje jako reverzní proxy, přijímá požadavky klientů a přeposílá je na backendové servery. Poté vrací odpovědi serveru klientovi, což zlepšuje zabezpečení, rozložení zátěže a celkový výkon.“


4) Popište situaci, kdy jste použili NGINX pro vyvažování zátěže.

Očekává se od kandidáta: Tazatel hledá praktické zkušenosti a vaši schopnost aplikovat funkce NGINX v reálných situacích.

Příklad odpovědi: „Ve své předchozí roli jsem nakonfiguroval NGINX tak, aby distribuoval provoz mezi více aplikačních serverů pomocí algoritmů round robin a least connections. Tento přístup zlepšil dostupnost aplikací a zabránil tomu, aby se kterýkoli jednotlivý server stal úzkým hrdlem.“


5) Jak se v NGINX řeší konfigurace SSL a HTTPS?

Očekává se od kandidáta: Tazatel chce posoudit vaše znalosti osvědčených postupů v oblasti zabezpečení a správy konfigurace.

Příklad odpovědi: „Na předchozí pozici jsem konfiguroval SSL instalací certifikátů, povolováním HTTPS listenerů a vynucováním silných šifrovacích sad. Také jsem implementoval přesměrování HTTP na HTTPS, abych zajistil bezpečnou komunikaci napříč všemi koncovými body.“


6) Jaké kroky byste podnikli k vyřešení problému s chybou 502 Bad Gateway v NGINX?

Očekává se od kandidáta: Tazatel testuje vaše schopnosti řešit problémy a metodologii řešení problémů.

Příklad odpovědi: „Začal bych kontrolou chybových protokolů NGINX, abych identifikoval problémy s připojením backendu. Poté bych ověřil, zda běží nadřazené servery, potvrdil správné nastavení proxy serveru a zajistil, aby byly správně nakonfigurovány časové limity.“


7) Jak optimalizujete výkon NGINX pro aplikace s vysokou návštěvností?

Očekává se od kandidáta: Tazatel chce vědět, jaký máte přístup k ladění výkonu a škálovatelnosti.

Příklad odpovědi: „V mém předchozím zaměstnání jsem optimalizoval NGINX povolením gzip komprese, vyladěním pracovních procesů a konfigurací ukládání statického obsahu do mezipaměti. Tyto změny výrazně zkrátily dobu odezvy a zatížení serveru.“


8) Můžete vysvětlit, jak NGINX zpracovává statický a dynamický obsah?

Očekává se od kandidáta: Tazatel hodnotí vaše znalosti v oblasti zpracování požadavků a optimalizace výkonu.

Příklad odpovědi: „NGINX obsluhuje statický obsah přímo a velmi efektivně ze souborového systému. V případě dynamického obsahu přeposílá požadavky na aplikační servery nebo služby, jako je PHP-FPM, což umožňuje každé komponentě soustředit se na to, co dělá nejlépe.“


9) Jak bezpečně spravujete a testujete změny konfigurace NGINX?

Očekává se od kandidáta: Tazatel chce pochopit váš přístup ke spolehlivosti a snižování rizik.

Příklad odpovědi: „Změny konfigurace ověřuji pomocí příkazu NGINX configuration test před opětovným načtením služby. Změny také aplikuji během údržbových oken a po nasazení pečlivě sleduji protokoly.“


10) Popište situaci, kdy jste museli rychle vyřešit výpadek související s NGINX.

Očekává se od kandidáta: Tazatel hodnotí vaši schopnost pracovat pod tlakem a efektivně komunikovat během incidentů.

Příklad odpovědi: „V mé poslední roli došlo k výpadku kvůli špatně nakonfigurované nadřazené službě. Problém jsem rychle identifikoval pomocí protokolů, vrátil konfiguraci zpět a sděloval aktualizace stavu zúčastněným stranám, dokud nebyla obnovena plná služba.“

Shrňte tento příspěvek takto: