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

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.
sbb-itb-59e1987
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 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
- Vahvista määritykset: Ennen kuin teet muutoksia livenä, käytä
nginx -ttarkistaaksesi kokoonpanosi virheiden varalta. - Ydinoptimoinnit:
- Ottelu
työntekijä_prosessitpalvelimesi CPU-ytimiin (esim.työntekijä_prosessit 44-ytiminen palvelin). - Ota gzip-pakkaus käyttöön pienentääksesi tiedostokokoja 50-70%:llä.
- Säädä puskurin kokoa käsitelläksesi pyyntöjä tehokkaammin.
- Ottelu
- 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.
Mitkä ovat suositellut puskuriasetukset?
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ä_prosessitprosessoriytimien määrään ja lisäätyöntekijä_yhteydetkä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."