Lépjen kapcsolatba velünk

info@serverion.com

Hívjon minket

+1 (302) 380 3902

Az Nginx konfigurációk elsajátítása a webszerver optimális teljesítménye érdekében

Az Nginx konfigurációk elsajátítása a webszerver optimális teljesítménye érdekében

Gyorsabb és jobb weboldalakat szeretne szerver teljesítménye? Az Nginx segíthet. Eseményvezérelt kialakításával az Nginx kapcsolatok ezreit kezeli hatékonyan, így a legjobb választás a nagy forgalmú webhelyek és a valós idejű alkalmazások számára. De a benne rejlő lehetőségek teljes kihasználásához kulcsfontosságú a megfelelő konfiguráció.

Legfontosabb elvitelek:

  • Növelje a teljesítményt: Állítsa be a dolgozói folyamatokat és engedélyezze a tömörítést az erőforrás-felhasználás csökkentése és a válaszadás felgyorsítása érdekében.
  • Forgalom kezelése: Használja a terheléselosztást a forgalom szerverek közötti elosztására és a nagy terhelésekre való optimalizálásra.
  • Biztonságos kapcsolatok: Konfigurálja az SSL-lezárást a jobb biztonság érdekében a háttérkiszolgálók túlterhelése nélkül.
  • Valós idejű alkalmazások: Állítsa be a WebSocket támogatást a zökkenőmentes kommunikáció érdekében valós idejű platformokon.
  • Hatékony monitorozás: Használjon olyan eszközöket, mint a Prometheus és a Grafana a szerver állapotának és teljesítményének nyomon követésére.

Példák a gyors beállításra:

  • Munkás folyamatok: CPU magokhoz igazítás (dolgozói_folyamatok 4;).
  • Tömörítés: Gzip engedélyezése (gzip on; gzip_comp_level 6;).
  • Gyorsítótárazás: A proxy gyorsítótárának beállítása a sebességhez (proxy_cache_path /var/cache/nginx;).
  • Terheléselosztás: Ossza el a forgalmat körbefutó vagy legkevesebb kapcsolattal.

Profi tipp: Rendszeresen figyelje és finomhangolja beállításait, hogy a szerver zökkenőmentesen működjön. Függetlenül attól, hogy nagy forgalmú webhelyeket, statikus tartalmat vagy valós idejű alkalmazásokat kezel, ezek a konfigurációk mindent megváltoztathatnak.

Teljesítmény-tuning NGINX nyílt forráskódú és NGINX Plus

nginx

Kulcsfontosságú Nginx konfigurációs fájlok és beállítások

A legtöbbet hozhatja ki Nginx szerveréből a konfigurációs fájlok megértésével és a kulcsbeállítások finomhangolásával kezdődik. Itt van egy részlet, amit tudnia kell.

Az Nginx konfigurációs fájlok megértése

Az Nginx beállításai két fő területre oszthatók:

  • Globális beállítások: Benne található /etc/nginx/nginx.conf
  • Webhelyspecifikus beállítások: ben található /etc/nginx/sites-available/

A módosítások alkalmazása előtt tesztelje a konfigurációt a következővel: nginx -t hogy hibamentes legyen.

Dolgozói folyamatok és kapcsolatok hangolása

A dolgozói folyamatok és kapcsolatok nagy szerepet játszanak a szerver teljesítményében. Íme egy gyors útmutató ezek beállításához:

Beállítás Leírás Példa érték
dolgozói_folyamatok Munkavállalói folyamatok száma Megfelel a CPU magoknak
worker_connections Maximális csatlakozások száma dolgozónként 1024 – 2048
Keepalive_timeout A kapcsolat időtúllépése 65 másodperc

Tipp: Állítsa be ezeket az értékeket a szerver hardverének megfelelően.

Például, ha a szervere 4 CPU maggal rendelkezik, a konfiguráció így nézhet ki:

worker_processes 4; események { worker_connections 1024; } 

A dolgozói folyamatok optimalizálása után tovább növelheti a teljesítményt a tömörítés és a gyorsítótár engedélyezésével.

Gzip tömörítés és gyorsítótár használata

A tömörítés és a gyorsítótárazás csökkenti a sávszélességet és javítja a betöltési időt. A következőképpen konfigurálhatja őket:

Gzip tömörítés engedélyezése:

gzip be; gzip_comp_level 6; gzip_types szöveg/egyszerű szöveg/css alkalmazás/json alkalmazás/javascript; 

Gyorsítótár beállítása:

proxy_cache_path /var/cache/nginx szintek=1:2 keys_zone=egy:10m inactive=60m; proxy_cache egy; proxy_cache_valid 200 302 10m; proxy_cache_valid 404 1m; (A változónevek és kommentek fordítandók, de ebben a kódrészletben ilyenek nincsenek.) 

A proxy_cache_path direktíva gyorsítótár-zónát hoz létre a gyakran elért tartalom számára, ami csökkenti a háttérrendszer terhelését. Használhatod is open_file_cache a gyakran használt fájlok tárolására a memóriában, csökkentve a lemezhasználatot.

Fejlett technikák a terheléselosztáshoz és az SSL-hez

A dolgozói folyamatok optimalizálására és gyorsítótárazására építve ezek a technikák a forgalomelosztás és a biztonság javítására összpontosítanak.

A terheléselosztás beállítása

Az Nginx hatékony eszközöket kínál a bejövő forgalom több szerveren való szétosztására. Íme egy alapkonfiguráció:

upstream backend { # Alapértelmezett: körforgásos megosztás kiegyensúlyozott elosztáshoz server localhost:8080; server localhost:8081; server localhost:8082; # Komment törlése a legkevesebb kapcsolat esetén (jobb egyenetlen terhelés esetén) # least_conn; } server { listen 80; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } 
  • Körmérkőzés ideális hasonló válaszidővel rendelkező szerverekhez.
  • A legkevesebb kapcsolatok jobban működik, ha a kérések összetettsége változó, így elkerülhető a lassabb szerverek túlterhelése.
  • A munkamenet fennmaradása érdekében engedélyezze IP hash hogy a felhasználókat következetesen ugyanahhoz a szerverhez irányítsák.

SSL-lezárás konfigurálása

Az SSL-lezárás a titkosítási feladatokat az Nginxre helyezi át, csökkentve a háttérkiszolgálók munkaterhelését. A Bobcares kutatása szerint ez akár 50%-vel is csökkentheti az SSL kézfogási késleltetést.

A következőképpen kombinálhatja az SSL-lezárást a terheléselosztással:

http { upstream backend { server localhost:8080; server localhost:8081; } server { listen 443 ssl; server_name example.com; ssl_certificate /path/to/certificate.crt; ssl_certificate_key /path/to/private/key.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } } 

Fontos SSL tippek:

  • Ragaszkodj hozzá TLS 1.2 és 1.3 a jobb biztonság érdekében.
  • Az erősebb titkosítás érdekében előnyben részesítse a szerveroldali titkosításokat.
  • A munkamenet gyorsítótárazás engedélyezése a teljesítmény javítása érdekében.

Az Nginx testreszabása speciális igényekhez

Az Nginx optimalizálása nagy forgalmú webhelyekhez

A nagy forgalmú webhelyek esetében az Nginx konfigurációját finomra kell hangolni a nagy terhelések hatékony kezelésére. A kulcsparaméterek módosítása jelentősen javíthatja a szerver válaszkészségét és általános teljesítményét.

Pufferméret-beállítások

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

Ezek a beállítások előnyben részesítik a memóriahasználatot a lemez I/O-val szemben, felgyorsítva a kérések kezelését. Például növelve client_body_buffer_size csökkenti az ideiglenes fájlírások szükségességét a kérések során.

Hatékony naplókezelés

http { access_log /var/log/nginx/access.log kombinált puffer=32k flush=5s; error_log /var/log/nginx/error.log figyelmeztetés; } 

A 32 KB-os puffer és az 5 másodperces ürítési időköz használata minimalizálja a lemezműveleteket, miközben a naplók pontosak és naprakészek maradnak.

Időtúllépés beállításai

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

Ezek az időtúllépési értékek segítenek megakadályozni, hogy a lassú ügyfelek szükségtelenül használják fel a szerver erőforrásait.

Ha ezek a beállítások megtörténtek, az Nginx testreszabható olyan alkalmazásokhoz is, amelyek folyamatos kommunikációt igényelnek, mint például a WebSockets.

Az Nginx konfigurálása a WebSocket támogatáshoz

A WebSockets a valós idejű alkalmazások kritikus összetevője. Az Nginx megfelelő beállítása a WebSocket kapcsolatok kezelésére egyenletes teljesítményt biztosít még terhelés alatt is.

map $http_upgrade $connection_upgrade { default upgrade; '' close; } server { listen 80; server_name example.com; location /websocket { proxy_pass http://backend_server; proxy_http_version 1.1; proxy_set_header Frissítés $http_upgrade; proxy_set_header Kapcsolat $connection_upgrade; proxy_set_header Gazdagép $host; proxy_cache_bypass $http_upgrade; # Időtúllépési beállítások WebSocket kapcsolatokhoz proxy_read_timeout 300s; proxy_send_timeout 300s; } } 

A WebSocket legfontosabb konfigurációs részletei:

Irányelv Célja
proxy_http_verzió Engedélyezi a HTTP/1.1-et a WebSocket támogatáshoz
proxy_read_timeout Beállítja az adatcsomagok közötti maximális időt
proxy_send_timeout Meghatározza az adatok küldésének maximális idejét
proxy_cache_bypass Letiltja a WebSocket forgalom gyorsítótárazását

A térkép direktíva hatékonyan kezeli a kapcsolatfrissítéseket, biztosítva a zökkenőmentes WebSocket kommunikációt.

A visszaélések megelőzése érdekében sebességkorlátozás alkalmazható a WebSocket kapcsolatokra:

http { limit_req_zone $binary_remote_addr zone=websocket_limit:10m rate=5r/s; location /websocket { limit_req zone=websocket_limit burst=20 nodelay; # ... a WebSocket többi konfigurációja } } 

Ez a beállítás másodpercenként 5 kérésre korlátozza az IP-címeket egy 20 kérésből álló sorozattal, így védelmet nyújt a DoS támadásokkal szemben, miközben fenntartja a szolgáltatás elérhetőségét.

Az Nginx teljesítményének és felügyeletének legjobb gyakorlatai

A kezdeti beállításon túl az Nginx konfigurációjának optimalizálása biztosítja, hogy hatékonyan tudja kezelni a változó munkaterheléseket.

Kulcsfontosságú területek, amelyekre összpontosítani kell

Az Nginx teljesítményének javítása magában foglalja a speciális beállítások finomhangolását, amelyek közvetlenül befolyásolják a szerver működésének hatékonyságát.

Munkavállalói folyamatok kezelése

A worker_rlimit_nofile direktíva kulcsfontosságú a fájlleírók kezelésében. Biztosítja, hogy szervere több egyidejű kapcsolatot tud kezelni anélkül, hogy túllépné a korlátokat nagy forgalmú időszakokban:

worker_rlimit_nofile 65535; 

A fájl gyorsítótárának megnyitása

A fájl gyorsítótárának megnyitása minimalizálja a lemez I/O-ját a gyakran elért fájlok metaadatainak gyorsítótárazásával, ami felgyorsítja a statikus tartalomszállítást:

http { open_file_cache max=1000 inactive=20s; open_file_cache_valid 30s; open_file_cache_min_uses 2; open_file_cache_errors be; } 

Ha ezek az optimalizálások megtörténtek, a rendszeres monitorozás elengedhetetlenné válik a folyamatos teljesítmény biztosítása és a további kiigazításra szoruló területek felderítése érdekében.

Az Nginx teljesítményének figyelése

A megfigyelés segít nyomon követni a szerver teljesítményét, és feltárja a szűk keresztmetszeteket vagy a hatékonyság hiányát. A legfontosabb figyelendő mutatók közé tartozik a kérések aránya, a hibaarány és az erőforráshasználat. Az olyan eszközök, mint a Prometheus és a Grafana, megkönnyítik ezen adatok összegyűjtését és megjelenítését.

Ajánlott Monitoring eszközök

Eszköz Célja Kulcsmutatók
Prométheusz Élő teljesítményadatokat gyűjt Kérelmek aránya, válaszidő, hibaarány
Grafana Vizualizálja a teljesítménytrendeket CPU-használat, memóriafogyasztás, forgalmi minták
htop Nyomon követi a rendszer erőforrás-használatát Folyamathasználat, memóriafoglalás

Teljesítménymutatók beállítása

Engedélyezze az állapotfigyelést az Nginxben a következő konfigurálásával:

hely /nginx_status { stub_status be; access_log ki; allow 127.0.0.1; deny all; } 

Ez a beállítás a következőkbe nyújt betekintést:

  • Aktív kapcsolatok
  • Összes elfogadott kapcsolat
  • Kérelemkezelési statisztikák
  • Olvasás, írás és várakozó kapcsolatok

A naplók hatékony elemzése

A pufferelt naplózás csökkentheti a lemez megterhelését a naplóírások csoportosításával. Ez segít fenntartani a szerver teljesítményét a naplók pontosságának feláldozása nélkül.

"A teljesítményadatokon alapuló rendszeres monitorozás és beállítás kulcsfontosságú az optimális eredmények eléréséhez. Elengedhetetlen, hogy egyszerre ne hajtsanak végre túl sok változtatást, mert ez megnehezítheti a hibaelhárítást."

Tárhely lehetőségek az Nginx számára

A megfelelő tárhelykörnyezet kiválasztása ugyanolyan fontos, mint az Nginx konfigurációk finomhangolása. A megfelelő platform biztosítja, hogy az optimalizálás a legjobb eredményt hozza.

Jellemzői Serverion Tárhely

Serverion

A Serverion kifejezetten az Nginx számára tervezett tárhelyplatformot kínál, amely kivételes teljesítményt és megbízhatóságot biztosít.

Tárolás és teljesítmény
A Serverion Nginx-re optimalizált SSD-tárhelyet használ, csökkentve az I/O késleltetést a konfigurációs fájlok és naplók elérésének felgyorsítása érdekében.

Biztonsági infrastruktúra
A vállalati szintű DDoS védelemmel a Serverion fokozza az Nginx biztonságát. Ez biztosítja az üzemidőt a támadások során, és kiegészíti az Nginx terheléselosztási funkcióit.

Erőforrás típusa Műszaki adatok Előnyök az Nginx számára
CPU Xeon négymagos Hatékonyan kezeli a dolgozói folyamatokat
RAM Akár 16 GB Növeli a gyorsítótárazási teljesítményt
Tárolás SSD alapú Felgyorsítja a fájlok elérését
Sávszélesség Nagy kapacitású Támogatja a megbízható terheléselosztást

Skálázható infrastruktúra
A Serverion tervei az Ön növekvő forgalmi igényeihez igazodnak. Ez biztosítja, hogy az Nginx beállítása képes kezelni a megnövekedett keresletet a teljesítmény elvesztése nélkül.

"A rendszeres megfigyelés és a teljesítmény optimalizálása elengedhetetlen az Nginx üzemeltetéséhez. A megfelelő tárhelykörnyezetnek biztosítania kell az optimális szerverteljesítmény fenntartásához szükséges erőforrásokat és eszközöket."

Szakértői támogatás
A Serverion éjjel-nappali ügyfélszolgálati csapata Nginx-specialistákból áll, akik segítséget nyújtanak az Ön igényeihez szabott konfigurációs módosításokban és teljesítményhangolásban.

Következtetés és utolsó tippek

Főbb pontok összefoglalója

A legtöbbet kihozni az Nginxből azt jelenti, hogy egy világos, lépésről lépésre történő megközelítésre kell összpontosítani. Kezdje azzal, hogy megértse szervere hardveres korlátait és forgalmi mintáit. Innentől kezdve finomhangolhatja a beállításokat, például a munkafolyamatokat, a gyorsítótárat és a terheléselosztást, hogy biztosítsa a szerver zökkenőmentes és hatékony működését.

Az első lépések

  1. Konfigurációk érvényesítése: Mielőtt bármilyen változtatást végrehajtana élőben, használja nginx -t a konfigurációk hibáinak ellenőrzéséhez.
  2. Alapvető optimalizálások:
    • Mérkőzés dolgozói_folyamatok a szerver CPU magjaihoz (pl. worker_processes 4 4 magos szerverhez).
    • Engedélyezze a gzip tömörítést, hogy a fájlméretet 50-70%-vel csökkentse.
    • Módosítsa a pufferméretet a kérések hatékonyabb kezelése érdekében.
  3. Speciális funkciók:
    • Állítsa be az SSL-lezárást a kapcsolatok biztonsága érdekében.
    • Konfigurálja a tartalom gyorsítótárat a megfelelő lejárati beállításokkal.
    • Használjon forgalmi mintázatához szabott terheléselosztást.
    • Telepítsen olyan eszközöket, mint a Prometheus és a Grafana a teljesítmény figyeléséhez.

Teljesítményfigyelés: A szerver teljesítményének szemmel tartása kulcsfontosságú. Kövesse nyomon a mérőszámokat, például a kérések arányát, a válaszidőket és az erőforráshasználatot, hogy a problémákat még azelőtt észlelje, hogy azok érintenék a felhasználókat.

"A rendszeres megfigyelés és a teljesítményoptimalizálás elengedhetetlen az Nginx üzemeltetéséhez. A konfigurációs beállítások és a megfigyelőeszközök megfelelő kombinációja biztosítja az optimális szerver teljesítményt az idő múlásával."

GYIK

Íme a válaszok néhány gyakori kérdésre az Nginx konfigurációkkal kapcsolatban, amelyek segítenek a hibaelhárításban és a teljesítmény javításában.

Hogyan ellenőrizhetem, hogy az Nginx gyorsítótáraz-e?

Annak ellenőrzéséhez, hogy az Nginx gyorsítótárazza-e a tartalmat, ellenőrizze a HTTP válaszfejléceket. Keres:

  • X-Cache: A „HIT” érték azt jelenti, hogy a tartalom gyorsítótárban van.
  • X-Cache-Status: Az aktuális gyorsítótárazási állapotot jelzi.

Ezzel a paranccsal megtekintheti a fejléceket:

curl -I https://yourwebsite.com 

Jegyzet: Győződjön meg arról, hogy ezek a fejlécek konfigurálva vannak az Nginx beállításaiban; ellenkező esetben nem jelennek meg a válaszban.

Íme egy példa konfigurációra a pufferek hatékony beállításához:

client_body_buffer_size 10K; client_header_buffer_size 1K; client_max_body_size 8m; large_client_header_buffers 4 4k; (A magyar fordítás megegyezik az eredeti angol szöveggel, valószínűleg a "nagy" betűméret és a "nagy" betűméret" karakterek kombinációja.) 

Hogyan engedélyezhetem a WebSocket támogatást?

A WebSocket támogatás engedélyezéséhez győződjön meg arról, hogy proxy_pass direktíva a WebSocket háttérkiszolgálóra mutat. A részletes utasításokért tekintse meg a WebSocket konfiguráció korábbi szakaszát.

Hogyan konfigurálhatom biztonságosan az SSL-t?

Az SSL biztonságos beállításához használja a következő konfigurációt:

szerver { listen 443 ssl; szerver_neve example.com; ssl_certificate /path/to/cert.crt; ssl_certificate_key /path/to/cert.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; } 

Hogyan optimalizálhatom az Nginxet nagy forgalomra?

A nagy forgalmú webhelyek esetében a következő kulcsfontosságú területekre összpontosítson:

  • Mérkőzés dolgozói_folyamatok a CPU magok számához és növelni worker_connections több kapcsolat kezelésére.
  • Hatékony gyorsítótárazás beállítása a szerverterhelés csökkentése érdekében.
  • Módosítsa a puffer méretét a kérések hatékonyabb feldolgozásához.

"A rendszeres megfigyelés és a teljesítményoptimalizálás elengedhetetlen az Nginx üzemeltetéséhez. A konfigurációs beállítások és a megfigyelőeszközök megfelelő kombinációja biztosítja az optimális szerver teljesítményt az idő múlásával."

Kapcsolódó blogbejegyzések

hu_HU