Ota meihin yhteyttä

info@serverion.com

Soita meille

+1 (302) 380 3902

Nginx-kokoonpanojen hallitseminen optimaalisen verkkopalvelimen suorituskyvyn takaamiseksi

Nginx-kokoonpanojen hallitseminen optimaalisen verkkopalvelimen suorituskyvyn takaamiseksi

Haluat nopeampia ja parempia verkkosivustoja palvelimen suorituskyky? Nginx voi auttaa. Tapahtumalähtöisen suunnittelunsa ansiosta Nginx käsittelee tuhansia yhteyksiä tehokkaasti, mikä tekee siitä parhaan vaihtoehdon vilkkaille verkkosivustoille ja reaaliaikaisille sovelluksille. Mutta sen täyden potentiaalin hyödyntämiseksi oikea konfigurointi on avainasemassa.

Tärkeimmät takeawayt:

  • Tehosta suorituskykyä: Säädä työntekijöiden prosesseja ja ota pakkaus käyttöön vähentääksesi resurssien käyttöä ja nopeuttaaksesi vastauksia.
  • Hallitse liikennettä: Käytä kuormituksen tasapainotusta liikenteen jakamiseen palvelimien välillä ja optimointi raskaan kuorman vuoksi.
  • Suojatut yhteydet: Määritä SSL-päättäminen parantaaksesi turvallisuutta ylikuormittamatta taustapalvelimia.
  • Reaaliaikaiset sovellukset: Ota käyttöön WebSocket-tuki saumattoman viestintää varten reaaliaikaisissa alustoissa.
  • Seuraa tehokkaasti: Käytä työkaluja, kuten Prometheus ja Grafana, seurataksesi palvelimen kuntoa ja suorituskykyä.

Esimerkkejä pika-asetuksista:

  • Työntekijän prosessit: Yhdistä suorittimen ytimiin (työntekijä_prosessit 4;).
  • Puristus: Ota Gzip käyttöön (gzip päällä; gzip_comp_level 6;).
  • Välimuisti: Määritä välityspalvelimen välimuistin nopeus (proxy_cache_path /var/cache/nginx;).
  • Kuorman tasapainotus: Hae liikennettä kiertoradalla tai vähiten yhteyksillä.

Provinkki: Tarkkaile ja hienosäädä asetuksiasi säännöllisesti, jotta palvelimesi toimii sujuvasti. Hallitsetpa paljon liikennettä sisältäviä verkkosivustoja, staattista sisältöä tai reaaliaikaisia sovelluksia, näillä määrityksillä voi olla suuri merkitys.

Suorituskykyä säätävä NGINX Open Source ja NGINX Plus

nginx

Tärkeimmät Nginx-määritystiedostot ja -asetukset

Parhaan hyödyn saaminen Nginx-palvelimesta alkaa sen määritystiedostojen ymmärtämisestä ja avainasetusten hienosäädöstä. Tässä on erittely siitä, mitä sinun tarvitsee tietää.

Nginx-määritystiedostojen ymmärtäminen

Nginx-asetukset on järjestetty kahteen pääalueeseen:

  • Globaalit asetukset: Löytyi /etc/nginx/nginx.conf
  • Sivustokohtaiset asetukset: Sijaitsee /etc/nginx/sites-available/

Ennen kuin otat käyttöön muutoksia, testaa kokoonpanosi nginx -t varmistaaksesi, että se on virheetön.

Työntekijöiden prosessien ja yhteyksien viritys

Työntekijöiden prosesseilla ja yhteyksillä on suuri rooli palvelimesi suorituskyvyssä. Tässä on nopea opas niiden määrittämiseen:

Asetus Kuvaus Esimerkkiarvo
työntekijä_prosessit Työntekijöiden prosessien määrä Vastaa CPU-ytimiä
työntekijä_yhteydet Liitäntöjä enintään työntekijää kohden 1024–2048
Keepalive_timeout Yhteyden aikakatkaisu 65 sekuntia

Vinkki: Säädä näitä arvoja palvelimesi laitteiston perusteella.

Jos palvelimessasi on esimerkiksi 4 CPU-ydintä, kokoonpanosi saattaa näyttää tältä:

työntekijäprosessit 4; tapahtumat { työntekijäyhteydet 1024; } 

Työntekijöiden prosessien optimoinnin jälkeen voit parantaa suorituskykyä entisestään ottamalla käyttöön pakkauksen ja välimuistin.

Gzip-pakkauksen ja välimuistin käyttö

Pakkaus ja välimuisti vähentävät kaistanleveyttä ja parantavat latausaikoja. Voit määrittää ne seuraavasti:

Ota Gzip-pakkaus käyttöön:

gzip päällä; gzip_comp_level 6; gzip_types teksti/tavallinen teksti/css-sovellus/json-sovellus/javascript; 

Välimuistin määrittäminen:

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

The proxy_cache_path direktiivi luo välimuistivyöhykkeen usein käytettävälle sisällölle, mikä vähentää taustasi kuormitusta. Voit myös käyttää open_file_cache tallentaa usein käytettävät tiedostot muistiin, mikä vähentää levyn käyttöä.

Kehittyneet tekniikat kuormituksen tasapainottamiseen ja SSL:ään

Nämä tekniikat perustuvat työntekijöiden prosessien optimointiin ja välimuistiin, ja ne keskittyvät parantamaan liikenteen jakelua ja turvallisuutta.

Kuormituksen tasapainotuksen määrittäminen

Nginx tarjoaa tehokkaita työkaluja saapuvan liikenteen levittämiseen useille palvelimille. Tässä on peruskokoonpano:

upstream backend { # Oletusarvo: round-robin tasapainotetulle jakelulle server localhost:8080; server localhost:8081; server localhost:8082; # Poista kommentti, jos yhteyksiä on vähiten (parempi epätasaisille työkuormille) # 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 on ihanteellinen palvelimille, joilla on samanlaiset vasteajat.
  • Vähiten yhteyksiä toimii paremmin, kun pyyntöjen monimutkaisuus vaihtelee, mikä auttaa välttämään hitaampien palvelimien ylikuormitusta.
  • Ota käyttöön istunnon pysyvyyttä varten IP Hash reitittää käyttäjät samalle palvelimelle johdonmukaisesti.

SSL-päätteen määrittäminen

SSL-päättäminen siirtää salaustehtävät Nginxille, mikä vähentää taustapalvelimien työmäärää. Bobcaresin tutkimuksen mukaan tämä voi lyhentää SSL-kättelyviivettä jopa 50%:llä.

Näin voit yhdistää SSL-päätteen kuormituksen tasapainottamiseen:

http { ylävirran taustajärjestelmä { palvelin localhost:8080; palvelin localhost:8081; } palvelin { listen 443 ssl; palvelimen_nimi esimerkki.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 päällä; ssl_session_cache jaettu:SSL:10m; sijainti / { proxy_pass http://backend; proxy_set_header Isäntä $host; proxy_set_header X-Real-IP $remote_addr; } } } 

Tärkeitä SSL-vinkkejä:

  • Pidä kiinni TLS 1.2 ja 1.3 paremman turvallisuuden vuoksi.
  • Priorisoi palvelinpuolen salaukset paremman salauksen saavuttamiseksi.
  • Ota istunnon välimuisti käyttöön suorituskyvyn parantamiseksi.

Nginxin mukauttaminen erityistarpeisiin

Nginxin optimointi paljon liikennettä sisältäville verkkosivustoille

Suuren liikenteen verkkosivustoilla Nginxin kokoonpano on hienosäädettävä, jotta se käsittelee raskaita kuormia tehokkaasti. Keskeisten parametrien säätäminen voi parantaa merkittävästi palvelimen reagointikykyä ja yleistä suorituskykyä.

Puskurin koon säädöt

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

Nämä asetukset asettavat muistin käytön etusijalle levyn I/O:n sijaan, mikä nopeuttaa pyyntöjen käsittelyä. Esimerkiksi lisäämällä client_body_buffer_size vähentää väliaikaisten tiedostojen kirjoitusten tarvetta pyyntöjen aikana.

Tehokas lokinhallinta

http { access_log /var/log/nginx/access.log yhdistetty puskuri=32k flush=5s; error_log /var/log/nginx/error.log varoitus; } 

32 kt:n puskurin ja 5 sekunnin huuhteluvälin käyttö minimoi levyn toiminnot samalla, kun lokit ovat tarkkoja ja ajan tasalla.

Aikakatkaisuasetukset

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

Nämä aikakatkaisuarvot auttavat estämään hitaita asiakkaita kuluttamasta palvelinresursseja tarpeettomasti.

Kun nämä säädöt on tehty, Nginx voidaan myös mukauttaa sovelluksiin, jotka vaativat jatkuvaa viestintää, kuten WebSockets.

Nginxin määrittäminen WebSocket-tukea varten

WebSocketit ovat tärkeä osa reaaliaikaisia sovelluksia. Nginxin oikea määrittäminen käsittelemään WebSocket-yhteyksiä varmistaa sujuvan suorituskyvyn myös kuormituksen aikana.

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 Päivitys $http_upgrade; proxy_set_header Yhteys $connection_upgrade; proxy_set_header Isäntä $host; proxy_cache_bypass $http_upgrade; # WebSocket-yhteyksien aikakatkaisuasetukset proxy_read_timeout 300s; proxy_send_timeout 300s; } } 

Tärkeimmät WebSocket-määritystiedot:

Direktiivi Tarkoitus
proxy_http_version Mahdollistaa HTTP/1.1:n WebSocket-tuen
proxy_read_timeout Asettaa enimmäisajan datapakettien välillä
proxy_send_timeout Määrittää enimmäisajan tietojen lähettämiselle
proxy_cache_bypass Poistaa käytöstä WebSocket-liikenteen välimuistin

The kartta direktiivi hallitsee tehokkaasti yhteyspäivityksiä ja varmistaa sujuvan WebSocket-viestinnän.

Väärinkäytön estämiseksi nopeusrajoitusta voidaan soveltaa WebSocket-yhteyksiin:

http { limit_req_zone $binary_remote_addr zone=websocket_limit:10m rate=5r/s; location /websocket { limit_req zone=websocket_limit burst=20 nodelay; # ... loput WebSocket-kokoonpanosta } } 

Tämä asetus rajoittaa IP-osoitteet viiteen pyyntöön sekunnissa 20 pyynnön purskeella, mikä suojaa DoS-hyökkäyksiltä ja säilyttää palvelun saatavuuden.

Parhaat käytännöt Nginxin suorituskykyyn ja seurantaan

Alkuasennuksen lisäksi Nginx-kokoonpanon pitäminen optimoituna varmistaa, että se pystyy käsittelemään muuttuvia työkuormia tehokkaasti.

Keskeiset alueet, joihin keskittyä

Nginxin suorituskyvyn parantamiseen kuuluu tiettyjen asetusten hienosäätö, jotka vaikuttavat suoraan palvelimesi toimintaan.

Työntekijöiden prosessien hallinta

The worker_rlimit_nofile -direktiivi on ratkaisevan tärkeä tiedostojen kuvaajien hallinnassa. Se varmistaa, että palvelimesi pystyy käsittelemään useita samanaikaisia yhteyksiä ilman rajoja suuren liikenteen aikana:

worker_rlimit_nofile 65535; 

Avaa tiedostovälimuisti

Avaa tiedostovälimuisti minimoi levyn I/O:n tallentamalla usein käytettyjen tiedostojen metatiedot välimuistiin, mikä nopeuttaa staattisen sisällön toimitusta:

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

Kun nämä optimoinnit on tehty, säännöllinen seuranta on välttämätöntä jatkuvan suorituskyvyn varmistamiseksi ja lisäsäätöä vaativien alueiden havaitsemiseksi.

Nginxin suorituskyvyn seuranta

Seuranta auttaa seuraamaan palvelimesi suorituskykyä ja paljastamaan mahdolliset pullonkaulat tai tehottomuudet. Tärkeitä tarkasteltavia mittareita ovat pyyntöjen määrä, virheprosentti ja resurssien käyttö. Prometheuksen ja Grafanan kaltaiset työkalut helpottavat näiden tietojen keräämistä ja visualisoimista.

Suositeltava Valvontatyökalut

Työkalu Tarkoitus Keskeiset mittarit
Prometheus Kerää live-esitystietoja Pyyntöprosentit, vastausajat, virheprosentit
Grafana Visualisoi suorituskykytrendejä Suorittimen käyttö, muistin kulutus, liikennemallit
htop Seuraa järjestelmän resurssien käyttöä Prosessin käyttö, muistin varaus

Suorituskykymittareiden määrittäminen

Ota tilanvalvonta käyttöön Nginxissä määrittämällä seuraavat:

sijainti /nginx_status { stub_status päällä; access_log pois; salli 127.0.0.1; estä kaikki; } 

Tämä asetus tarjoaa tietoa seuraavista asioista:

  • Aktiiviset yhteydet
  • Hyväksytyt yhteydet yhteensä
  • Pyynnön käsittelytilastot
  • Lukeminen, kirjoittaminen ja yhteyksien odottaminen

Analysoi lokit tehokkaasti

Puskuroitu loki voi vähentää levyn rasitusta ryhmittelemällä lokin kirjoitukset. Tämä auttaa ylläpitämään palvelimen suorituskykyä tinkimättä lokien tarkkuudesta.

"Säännöllinen seuranta ja suoritustietoihin perustuva säätö ovat erittäin tärkeitä optimaalisen tuloksen saavuttamiseksi. On tärkeää välttää liian monien muutosten tekemistä kerralla, koska tämä voi vaikeuttaa vianetsintää."

Isännöintivaihtoehdot Nginxille

Oikean isännöintiympäristön valitseminen on yhtä tärkeää kuin Nginx-kokoonpanojen hienosäätö. Oikea alusta varmistaa, että optimointisi tuottavat parhaat tulokset.

Ominaisuudet Serverion Hosting

Serverion

Serverion tarjoaa erityisesti Nginxille suunnitellun isännöintialustan, joka tarjoaa poikkeuksellisen suorituskyvyn ja luotettavuuden.

Varastointi ja suorituskyky
Serverion käyttää Nginxille optimoitua SSD-tallennustilaa, mikä vähentää I/O-viivettä nopeuttaakseen määritystiedostojen ja lokien käyttöä.

Turvallisuusinfrastruktuuri
Yritystason DDoS-suojauksella Serverion parantaa Nginxin tietoturvaa. Tämä varmistaa käytettävyyden hyökkäysten aikana ja täydentää Nginxin kuormituksen tasapainotusominaisuuksia.

Resurssin tyyppi Tekniset tiedot Edut Nginxille
CPU Xeon Quad Core Hoitaa työntekijöiden prosesseja tehokkaasti
RAM Jopa 16 Gt Parantaa välimuistin suorituskykyä
varastointi SSD-pohjainen Nopeuttaa tiedostojen käyttöä
kaistanleveys Suuri kapasiteetti Tukee luotettavaa kuormituksen tasapainotusta

Skaalautuva infrastruktuuri
Serverionin suunnitelmat on suunniteltu mukautumaan kasvaviin liikennetarpeisiisi. Tämä varmistaa, että Nginx-asennus pystyy käsittelemään lisääntynyttä kysyntää suorituskykyä menettämättä.

"Säännöllinen seuranta ja suorituskyvyn optimointi ovat tärkeitä Nginxiä isännöitäessä. Oikean isännöintiympäristön tulisi tarjota sekä resurssit että työkalut, joita tarvitaan palvelimen optimaalisen suorituskyvyn ylläpitämiseen."

Asiantuntijatuki
Serverionin 24/7-tukitiimiin kuuluu Nginx-asiantuntijoita, jotka voivat auttaa tarpeisiisi räätälöidyissä kokoonpanon säätämisessä ja suorituskyvyn virittämisessä.

Johtopäätös ja viimeiset vinkit

Keskeisten kohtien yhteenveto

Parhaan hyödyn saaminen Nginxistä tarkoittaa keskittymistä selkeään, vaiheittaiseen lähestymistapaan. Aloita ymmärtämällä palvelimesi laitteistorajat ja liikennemallit. Sieltä voit hienosäätää asetuksia, kuten työprosessien, välimuistin ja kuormituksen tasapainotuksen, varmistaaksesi, että palvelimesi toimii sujuvasti ja tehokkaasti.

Aloitusohjeet

  1. Vahvista määritykset: Ennen kuin teet muutoksia livenä, käytä nginx -t tarkistaaksesi kokoonpanosi virheiden varalta.
  2. Ydinoptimoinnit:
    • Ottelu työntekijä_prosessit palvelimesi CPU-ytimiin (esim. työntekijä_prosessit 4 4-ytiminen palvelin).
    • Ota gzip-pakkaus käyttöön pienentääksesi tiedostokokoja 50-70%:llä.
    • Säädä puskurin kokoa käsitelläksesi pyyntöjä tehokkaammin.
  3. Lisäominaisuudet:
    • Aseta SSL-pääte yhteyksien suojaamiseksi.
    • Määritä sisällön välimuisti oikealla vanhenemisasetuksella.
    • Käytä liikennemalleihisi räätälöityä kuormituksen tasapainotusta.
    • Asenna työkalut, kuten Prometheus ja Grafana, seurataksesi suorituskykyä.

Suorituskyvyn seuranta: Palvelimesi suorituskyvyn seuraaminen on tärkeää. Seuraa mittareita, kuten pyyntöprosentteja, vastausaikoja ja resurssien käyttöä, jotta saat selville kaikki ongelmat ennen kuin ne vaikuttavat käyttäjiin.

"Säännöllinen seuranta ja suorituskyvyn optimointi ovat tärkeitä Nginxiä isännöitäessä. Määritysasetusten ja valvontatyökalujen oikea yhdistelmä varmistaa palvelimen optimaalisen suorituskyvyn ajan mittaan."

UKK

Tässä on vastauksia joihinkin yleisiin Nginx-kokoonpanoja koskeviin kysymyksiin, jotka auttavat sinua vianmäärityksessä ja suorituskyvyn parantamisessa.

Kuinka voin tarkistaa, tallentaako Nginx välimuistiin?

Voit tarkistaa, tallentaako Nginx sisältöä välimuistiin, tarkistamalla HTTP-vastausten otsikot. Etsiä:

  • X-Cache: "HIT"-arvo tarkoittaa, että sisältö on välimuistissa.
  • X-Cache-Status: Ilmaisee nykyisen välimuistin tilan.

Tällä komennolla voit tarkastella otsikoita:

curl -I https://sivustosi.com 

Huom: Varmista, että nämä otsikot on määritetty Nginx-asetuksissasi; muuten ne eivät näy vastauksessa.

Tässä on esimerkki kokoonpanosta puskureiden tehokkaaseen määrittämiseen:

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

Kuinka otan WebSocket-tuen käyttöön?

Ota WebSocket-tuki käyttöön varmistamalla, että proxy_pass -direktiivi osoittaa WebSocket-taustapalvelimeen. Katso tarkemmat ohjeet aikaisemmasta WebSocket-määrityksiä käsittelevästä osiosta.

Kuinka voin määrittää SSL:n turvallisesti?

Määritä SSL turvallisesti käyttämällä seuraavia määrityksiä:

palvelin { listen 443 ssl; palvelimen_nimi esimerkki.com; ssl_sertifikaatti /polku/sertifikaatille.crt; ssl_sertifikaatin_avain /polku/sertifikaatille.avain; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; } 

Kuinka optimoin Nginxin suurelle liikenteelle?

Keskity suuren liikenteen verkkosivustoille seuraaviin avainalueisiin:

  • Ottelu työntekijä_prosessit prosessoriytimien määrään ja lisää työntekijä_yhteydet käsittelemään enemmän yhteyksiä.
  • Määritä tehokas välimuisti palvelimen kuormituksen vähentämiseksi.
  • Säädä puskurin kokoa käsitelläksesi pyynnöt tehokkaammin.

"Säännöllinen seuranta ja suorituskyvyn optimointi ovat tärkeitä Nginxiä isännöitäessä. Määritysasetusten ja valvontatyökalujen oikea yhdistelmä varmistaa palvelimen optimaalisen suorituskyvyn ajan mittaan."

Aiheeseen liittyvät blogikirjoitukset

fi