Kontaktujte nás

info@serverion.com

Zavolejte nám

+1 (302) 380 3902

Zvládnutí konfigurací Nginx pro optimální výkon webového serveru

Zvládnutí konfigurací Nginx pro optimální výkon webového serveru

Chcete rychlejší a lepší webové stránky výkon serveru? Nginx může pomoci. Díky svému designu řízenému událostmi zvládá Nginx efektivně tisíce připojení, což z něj činí nejlepší volbu pro weby s vysokou návštěvností a aplikace v reálném čase. K odemknutí jeho plného potenciálu je však klíčová správná konfigurace.

Klíčové poznatky:

  • Zvýšení výkonu: Upravte pracovní procesy a povolte kompresi, abyste snížili spotřebu zdrojů a zrychlili odezvy.
  • Řešit provoz: Použijte load balancing k distribuci provozu mezi servery a optimalizaci pro velké zatížení.
  • Zabezpečená připojení: Nakonfigurujte ukončení SSL pro lepší zabezpečení bez přetížení backendových serverů.
  • Aplikace v reálném čase: Nastavte podporu WebSocket pro bezproblémovou komunikaci na platformách v reálném čase.
  • Monitorujte efektivně: Použijte nástroje jako Prometheus a Grafana ke sledování stavu a výkonu serveru.

Příklady rychlého nastavení:

  • Pracovní procesy: Přizpůsobit jádrům CPU (worker_processes 4;).
  • Komprese: Povolit Gzip (gzip zapnutý; gzip_comp_level 6;).
  • Ukládání do mezipaměti: Nakonfigurujte mezipaměť serveru proxy pro rychlost (proxy_cache_path /var/cache/nginx;).
  • Vyrovnávání zátěže: Distribuujte provoz pomocí kruhových nebo nejmenších připojení.

Tip pro profesionály: Pravidelně sledujte a dolaďujte svá nastavení, aby váš server fungoval hladce. Ať už spravujete weby s vysokou návštěvností, statický obsah nebo aplikace v reálném čase, tyto konfigurace mohou mít zásadní význam.

Ladění výkonu NGINX Open Source a NGINX Plus

NGINX

Klíčové konfigurační soubory a nastavení Nginx

Maximální využití vašeho serveru Nginx začíná pochopením jeho konfiguračních souborů a doladěním klíčových nastavení. Zde je rozpis toho, co potřebujete vědět.

Porozumění konfiguračním souborům Nginx

Nastavení Nginx jsou uspořádána do dvou hlavních oblastí:

  • Globální nastavení: Nalezeno v /etc/nginx/nginx.conf
  • Nastavení specifická pro daný web: Nachází se v /etc/nginx/sites-available/

Před použitím změn otestujte konfiguraci pomocí nginx -t aby bylo zajištěno, že je bez chyb.

Ladění pracovních procesů a připojení

Pracovní procesy a připojení hrají velkou roli v tom, jak dobře funguje váš server. Zde je rychlý průvodce jejich nastavením:

Nastavení Popis Příklad hodnoty
worker_processes Počet pracovních procesů Odpovídá jádrům CPU
worker_connections Maximální počet připojení na pracovníka 1024 – 2048
keepalive_timeout Vypršel časový limit připojení 65 sekund

Tip: Upravte tyto hodnoty na základě hardwaru vašeho serveru.

Pokud má váš server například 4 jádra CPU, může vaše konfigurace vypadat takto:

worker_processes 4; události { worker_connections 1024; } 

Po optimalizaci pracovních procesů můžete dále zvýšit výkon povolením komprese a ukládání do mezipaměti.

Použití Gzip komprese a ukládání do mezipaměti

Komprese a ukládání do mezipaměti pomáhají snížit šířku pásma a zkrátit dobu načítání. Zde je návod, jak je nakonfigurovat:

Povolit kompresi Gzip:

gzip zapnuto; gzip_comp_level 6; gzip_types text/prostý text/css aplikace/json aplikace/javascript; 

Nastavení mezipaměti:

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=one:10m inactive=60m; proxy_cache one; proxy_cache_valid 200 302 10m; proxy_cache_valid 404 1m; 

The proxy_cache_path vytváří zónu mezipaměti pro často používaný obsah, což snižuje zátěž vašeho backendu. Můžete také použít open_file_cache k ukládání běžně používaných souborů do paměti, což snižuje spotřebu disku.

Pokročilé techniky pro vyrovnávání zátěže a SSL

Tyto techniky, založené na optimalizaci pracovních procesů a ukládání do mezipaměti, se zaměřují na zlepšení distribuce provozu a zabezpečení.

Nastavení vyvažování zátěže

Nginx nabízí výkonné nástroje pro rozložení příchozího provozu na více serverů. Zde je základní konfigurace:

upstream backend { # Výchozí: round-robin pro vyváženou distribuci server localhost:8080; server localhost:8081; server localhost:8082; # Odkomentovat pro nejméně připojení (lepší pro nerovnoměrné zatížení) # least_conn; } server { listen 80; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } 
  • Round-robin je ideální pro servery s podobnou dobou odezvy.
  • Nejméně spojení funguje lépe, když se požadavky liší co do složitosti, což pomáhá vyhnout se přetížení pomalejších serverů.
  • Pro zachování relace povolte IP hash konzistentně směrovat uživatele na stejný server.

Konfigurace ukončení SSL

Ukončení SSL přesouvá úlohy šifrování na Nginx, což snižuje zátěž na backendových serverech. Výzkum společnosti Bobcares naznačuje, že to může snížit latenci handshake SSL až o 50%.

Zde je návod, jak zkombinovat ukončení SSL s vyrovnáváním zátěže:

http { upstream backend { server localhost:8080; server localhost:8081; } server { listen 443 ssl; server_nazev example.com; ssl_certificate /cesta/k/certifikátu.crt; ssl_certificate_key /cesta/k/soukromému/klíči.klíč; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers zapnuto; ssl_session_cache sdílené:SSL:10m; umístění / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } } 

Důležité tipy pro SSL:

  • Držte se TLS 1.2 a 1.3 pro lepší zabezpečení.
  • Upřednostněte šifry na straně serveru pro silnější šifrování.
  • Chcete-li zlepšit výkon, povolte ukládání do mezipaměti relací.

Přizpůsobení Nginx pro konkrétní potřeby

Optimalizace Nginx pro weby s vysokou návštěvností

U webů s vysokou návštěvností musí být konfigurace Nginxu vyladěna, aby efektivně zvládala velké zatížení. Úprava klíčových parametrů může výrazně zlepšit odezvu serveru a celkový výkon.

Úpravy velikosti vyrovnávací paměti

http { client_body_buffer_size 16k; client_header_buffer_size 4k; client_max_body_size 8m; large_client_header_buffers 4 8k; } 

Tato nastavení upřednostňují využití paměti před diskovými I/O a urychlují zpracování požadavků. Například zvýšení client_body_buffer_size snižuje potřebu dočasného zápisu souborů během požadavků.

Efektivní správa protokolů

http { access_log /var/log/nginx/access.log kombinovaná vyrovnávací paměť=32k flush=5s; error_log /var/log/nginx/error.log varování; } 

Použití 32KB vyrovnávací paměti a 5sekundového intervalu splachování minimalizuje diskové operace a zároveň udržuje protokoly přesné a aktuální.

Nastavení časového limitu

http { client_body_timeout 12; client_header_timeout 12; send_timeout 10; } 

Tyto hodnoty časového limitu pomáhají zabránit tomu, aby pomalí klienti zbytečně spotřebovávali prostředky serveru.

Jakmile jsou tyto úpravy provedeny, lze Nginx také přizpůsobit pro aplikace, které vyžadují nepřetržitou komunikaci, jako jsou WebSockets.

Konfigurace Nginx pro podporu WebSocket

WebSockets jsou kritickou součástí aplikací v reálném čase. Správné nastavení Nginx pro zpracování připojení WebSocket zajišťuje hladký výkon i při zatížení.

mapa $http_upgrade $connection_upgrade { výchozí upgrade; '' close; } server { listen 80; server_name example.com; umístění /websocket { proxy_pass http://backend_server; proxy_http_version 1.1; proxy_set_header Aktualizace $http_upgrade; proxy_set_header Připojení $connection_upgrade; proxy_set_header Hostitel $host; proxy_cache_bypass $http_upgrade; # Nastavení časového limitu pro připojení WebSocket proxy_read_timeout 300s; proxy_send_timeout 300s; } } 

Klíčové podrobnosti konfigurace WebSocket:

Směrnice Účel
proxy_http_verze Povolí HTTP/1.1 pro podporu WebSocket
proxy_read_timeout Nastavuje maximální dobu mezi datovými pakety
proxy_send_timeout Definuje maximální dobu pro odeslání dat
proxy_cache_bypass Zakáže ukládání do mezipaměti pro provoz WebSocket

The mapa Direktiva efektivně spravuje upgrady připojení a zajišťuje hladkou komunikaci WebSocket.

Aby se zabránilo zneužití, lze na připojení WebSocket použít omezení rychlosti:

http { limit_req_zone $binary_remote_addr zone=websocket_limit:10m rate=5r/s; location /websocket { limit_req zone=websocket_limit burst=20 nodelay; # ... zbytek konfigurace WebSocketu } } 

Toto nastavení omezuje IP na 5 požadavků za sekundu s 20 požadavky, což chrání před útoky DoS při zachování dostupnosti služby.

Nejlepší postupy pro výkon a monitorování Nginx

Udržování optimalizované konfigurace Nginx kromě počátečního nastavení zajišťuje, že dokáže efektivně zvládat změny pracovního zatížení.

Klíčové oblasti, na které je třeba se zaměřit

Zlepšení výkonu Nginx zahrnuje jemné doladění konkrétních nastavení, která přímo ovlivňují, jak efektivně váš server funguje.

Řízení pracovních procesů

The worker_rlimit_nofile Direktiva je klíčová pro správu deskriptorů souborů. Zajišťuje, že váš server dokáže zpracovat více současných připojení, aniž by během období vysokého provozu narazil na limity:

worker_rlimit_nofile 65535; 

Pomocí Open File Cache

Otevřená mezipaměť souborů minimalizuje vstupy a výstupy disku ukládáním metadat často používaných souborů do mezipaměti, což urychluje doručování statického obsahu:

http { open_file_cache max=1000 neaktivní=20s; open_file_cache_valid 30s; open_file_cache_min_uses 2; open_file_cache_errors on; } 

Jakmile jsou tyto optimalizace zavedeny, pravidelné monitorování se stává nezbytným pro zajištění nepřetržitého výkonu a pro zjištění oblastí vyžadujících další úpravy.

Sledování výkonu Nginx

Monitorování pomáhá sledovat výkon vašeho serveru a odhaluje případná úzká hrdla nebo neefektivitu. Mezi klíčové metriky, které je třeba sledovat, patří četnost požadavků, četnost chyb a využití zdrojů. Nástroje jako Prometheus a Grafana usnadňují shromažďování a vizualizaci těchto dat.

Doporučeno Monitorovací nástroje

Nástroj Účel Klíčové metriky
Prometheus Shromažďuje data o živém výkonu Míry požadavků, doby odezvy, chybovost
Grafana Vizualizuje výkonnostní trendy Využití procesoru, spotřeba paměti, vzorce provozu
htop Sleduje využití systémových prostředků Využití procesu, alokace paměti

Nastavení metrik výkonu

Povolte sledování stavu v Nginx nakonfigurováním následujícího:

umístění /nginx_status { stub_status zapnuto; access_log vypnuto; povolit 127.0.0.1; zakázat vše; } 

Toto nastavení poskytuje přehled o:

  • Aktivní spojení
  • Celkový počet přijatých spojení
  • Statistiky zpracování požadavků
  • Čtení, psaní a čekání na spojení

Efektivní analýza protokolů

Protokolování s vyrovnávací pamětí může snížit zatížení disku seskupením zápisů protokolu. To pomáhá udržovat výkon serveru bez obětování přesnosti vašich protokolů.

"Pravidelné monitorování a úpravy na základě údajů o výkonu jsou zásadní pro dosažení optimálních výsledků. Je nezbytné vyhnout se příliš mnoha změnám najednou, protože to může komplikovat odstraňování problémů."

Možnosti hostování pro Nginx

Výběr správného hostitelského prostředí je stejně důležitý jako vyladění konfigurací Nginx. Správná platforma zajišťuje, že vaše optimalizace přinesou ty nejlepší výsledky.

Vlastnosti Serverion Hosting

Serverion

Serverion nabízí hostingovou platformu navrženou speciálně pro Nginx, která poskytuje výjimečný výkon a spolehlivost.

Úložiště a výkon
Serverion používá úložiště SSD optimalizované pro Nginx, což snižuje I/O latenci pro urychlení přístupu ke konfiguračním souborům a protokolům.

Bezpečnostní infrastruktura
S ochranou DDoS na podnikové úrovni Serverion vylepšuje zabezpečení Nginx. To zajišťuje dostupnost během útoků a doplňuje funkce Nginx pro vyrovnávání zatížení.

Typ zdroje Specifikace Výhody pro Nginx
CPU Čtyřjádrový Xeon Efektivně řeší pracovní procesy
BERAN Až 16 GB Zvyšuje výkon mezipaměti
Úložný prostor Na bázi SSD Zrychluje přístup k souborům
Šířka pásma Vysokokapacitní Podporuje spolehlivé vyrovnávání zátěže

Škálovatelná infrastruktura
Plány Serverion jsou navrženy tak, aby se přizpůsobily vašim rostoucím potřebám provozu. To zajišťuje, že vaše nastavení Nginx zvládne zvýšenou poptávku bez ztráty výkonu.

"Pravidelné monitorování a optimalizace výkonu jsou při hostování Nginx zásadní. Správné hostitelské prostředí by mělo poskytovat zdroje i nástroje nezbytné pro udržení optimálního výkonu serveru."

Odborná podpora
Tým podpory Serverion 24/7 zahrnuje specialisty Nginx, kteří mohou pomoci s vyladěním konfigurace a laděním výkonu na míru vašim potřebám.

Závěr a tipy na závěr

Shrnutí klíčových bodů

Dostat z Nginxu maximum znamená zaměřit se na jasný přístup krok za krokem. Začněte pochopením hardwarových limitů vašeho serveru a vzorců provozu. Odtud dolaďte nastavení, jako jsou pracovní procesy, mezipaměť a vyrovnávání zátěže, abyste zajistili, že váš server běží hladce a efektivně.

Kroky, jak začít

  1. Ověřit konfigurace: Před provedením jakýchkoli změn naživo použijte nginx -t pro kontrolu chyb v konfiguraci.
  2. Optimalizace jádra:
    • Zápas worker_processes k jádrům CPU vašeho serveru (např. pracovní_procesy 4 pro 4jádrový server).
    • Povolte kompresi gzip pro zmenšení velikosti souborů o 50-70%.
    • Upravte velikost vyrovnávací paměti, abyste zpracovávali požadavky efektivněji.
  3. Pokročilé funkce:
    • Nastavte ukončení SSL pro zabezpečení připojení.
    • Nakonfigurujte ukládání obsahu do mezipaměti se správným nastavením vypršení platnosti.
    • Použijte vyrovnávání zátěže přizpůsobené vašim vzorcům provozu.
    • Nainstalujte nástroje jako Prometheus a Grafana ke sledování výkonu.

Sledování výkonu: Sledování výkonu vašeho serveru je klíčové. Sledujte metriky, jako jsou četnosti požadavků, doby odezvy a využití zdrojů, abyste zachytili jakékoli problémy dříve, než se dotknou uživatelů.

"Pravidelné monitorování a optimalizace výkonu jsou zásadní při hostování Nginx. Správná kombinace nastavení konfigurace a monitorovacích nástrojů zajišťuje optimální výkon serveru v průběhu času."

Nejčastější dotazy

Zde jsou odpovědi na některé běžné otázky o konfiguracích Nginx, které vám pomohou při odstraňování problémů a zlepšování výkonu.

Jak mohu zkontrolovat, zda se Nginx ukládá do mezipaměti?

Chcete-li zkontrolovat, zda Nginx ukládá obsah do mezipaměti, zkontrolujte záhlaví odpovědí HTTP. Hledat:

  • X-Cache: Hodnota "HIT" znamená, že obsah je uložen do mezipaměti.
  • X-Cache-Status: Označuje aktuální stav mezipaměti.

Tento příkaz můžete použít k zobrazení záhlaví:

curl -I https://yourwebsite.com 

Poznámka: Ujistěte se, že tyto hlavičky jsou nakonfigurovány v nastavení Nginx; jinak se v odpovědi neobjeví.

Zde je příklad konfigurace pro efektivní nastavení vyrovnávacích pamětí:

client_body_buffer_size 10K; client_header_buffer_size 1K; client_max_body_size 8m; large_client_header_buffers 4 4k; 

Jak povolím podporu WebSocket?

Chcete-li povolit podporu WebSocket, ujistěte se, že vaše proxy_pass direktiva ukazuje na backend server WebSocket. Podrobné pokyny najdete v dřívější části o konfiguraci WebSocket.

Jak mohu bezpečně nakonfigurovat SSL?

K bezpečnému nastavení SSL použijte následující konfiguraci:

server { listen 443 ssl; název_serveru example.com; ssl_certificate /cesta/k/cert.crt; ssl_certificate_key /cesta/k/cert.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; } 

Jak optimalizuji Nginx pro vysokou návštěvnost?

U webů s vysokou návštěvností se zaměřte na tyto klíčové oblasti:

  • Zápas worker_processes na počet jader CPU a zvýšit worker_connections zvládnout více spojení.
  • Nastavte efektivní ukládání do mezipaměti, abyste snížili zatížení serveru.
  • Upravte velikost vyrovnávací paměti pro efektivnější zpracování požadavků.

"Pravidelné monitorování a optimalizace výkonu jsou zásadní při hostování Nginx. Správná kombinace nastavení konfigurace a monitorovacích nástrojů zajišťuje optimální výkon serveru v průběhu času."

Související příspěvky na blogu

cs_CZ