Meklējat visaptverošu nginx rokasgrāmatu? Šis pilnīgais nginx konfigurācijas ceļvedis aptver visu — no instalēšanas līdz uzlabotai nginx veiktspējas regulēšanai un optimizācijai. Neatkarīgi no tā, vai iestatāt savu pirmo serveri vai vēlaties optimizēt nginx lielai datplūsmai, šis ceļvedis nodrošina praktisko nginx labāko praksi, pārbaudītus nginx iestatījumus un nginx drošības labāko praksi maksimālai efektivitātei.

⚡ Ātrā atbilde:

  • Iestatīšanas laiks: 45 minūtes
  • Prasmju līmenis: Vidējs (kopēt-ielīmēt, konfigurācijas iekļautas)
  • Veiktspējas uzlabojums: 40–60% ātrāki atbildes laiki
  • Datplūsmas kapacitāte: Apstrādā 10 000+ pieprasījumu/s
  • Izmaksas: Bezmaksas (atvērtā koda)

Īss kopsavilkums: Ko jūs apgūsit

  • Darbinieku procesu optimizācija: Konfigurējiet darbinieku procesus maksimālai caurlaidei un apstrādājiet augstas datplūsmas scenārijus ar minimālu resursu patēriņu
  • Saspiešana un joslas platums: Ieviesiet Gzip saspiešanas labāko praksi, lai sasniegtu 2–5x joslas platuma samazinājumu un ātrāku lapu ielādi
  • SSL/TLS pastiprināšana: Pielietojiet SSL/TLS drošības pastiprināšanas paņēmienus, lai iegūtu A+ novērtējumu vietnē SSL Labs un aizsargātu savu datplūsmu
  • Augšupielāde un ātruma ierobežošana: Optimizējiet client_max_body_size failu augšupielādēm un ieviesiet ātruma ierobežošanas un DDoS aizsardzības stratēģijas
  • Uzraudzība un problēmu novēršana: Apgūstiet uzraudzības un problēmu novēršanas paņēmienus, lai ātri identificētu un novērstu veiktspējas vājvietas

Satura rādītājs

Kas ir Nginx un kāpēc to izmantot?

Nginx (izrunā "engine-x") ir jaudīgs, daudzpusīgs tīmekļa serveris, kas izstrādāts augstai veiktspējai, efektīvam resursu patēriņam un izcilai mērogojamībai. Izmantojot tīmekļa hostingam, reversajai starpniekserverei, slodzes balansēšanai un kešatmiņai, nginx lieliski tiek galā ar augstas datplūsmas scenārijiem ar minimālu nginx latenci un zemu resursu patēriņu. Tādi uzņēmumi kā Netflix un GitHub paļaujas uz nginx savai infrastruktūrai. Nginx iespējas palīdz uzlabot vietnes SEO optimizāciju, vienlaikus atbilstot mūsdienu tīmekļa pakalpojumu mērogojamības prasībām.

Tirgus pozīcija un veiktspēja

Interesants fakts: Nginx ieņem 18,98% tirgus daļas (saskaņā ar NetCraft 2024. gada oktobra tīmekļa serveru pārskatu), konkurējot ar citiem vadošajiem tīmekļa serveriem, piemēram, Cloudflare, Apache un LiteSpeed. Tā efektivitāte un daudzpusība padara to ideālu mūsdienu tīmekļa infrastruktūrai, kurai nepieciešami nginx pamatu augstas veiktspējas serveri no nulles.

Nginx lieliski pilda statisku saturu, darbojas kā reversā starpniekserveris un veic slodzes balansēšanu, izmantojot uz notikumiem balstītu arhitektūru. Šo nginx pamatu izprašana palīdz veidot augstas veiktspējas serverus no nulles. Šis uz nginx dokumentāciju balstītais ceļvedis aptver nginx labāko praksi soli pa solim, no pamata iestatīšanas līdz uzlabotai nginx augstās slodzes konfigurācijai un nginx regulēšanai ražošanas vidēm.

Kāpēc izvēlēties Nginx veiktspējas optimizācijai?

  • Kad jums ir nepieciešams paātrināt nginx veiktspēju vai ieviest nginx optimizācijas ātro startu
  • Svarīgi ir izprast pareizos nginx iestatījumus un nginx konfigurācijas labāko praksi
  • Šis ceļvedis aptver nginx gzip konfigurācijas labāko praksi un uzlabotos nginx drošības padomus
  • Ievērojot jaunākos nginx ssl_prefer_server_ciphers labākās prakses 2024 standartus

Nginx lieliski pilda statisku saturu, darbojas kā reversā starpniekserveris un veic slodzes balansēšanu, vienlaikus minimizējot resursu patēriņu. Lūk, kā tas salīdzinās ar citiem tīmekļa serveriem:

Nginx pret citiem tīmekļa serveriem: veiktspējas salīdzinājums
Funkcija Nginx Apache Microsoft Google Cloudflare LiteSpeed
Tirgus daļa (okt. 2024) 18.98% 17.86% 2.03% 10.12% 16.28% 6.23%
Veiktspēja Augsta vienlaicība, efektīvs statiskam saturam Lēnāks ar augstu vienlaicību, labāks dinamiskai saturam Ierobežota mērogojamība Optimizēts Google Cloud Augsta veiktspēja, īpaši ar kešatmiņu Ātrākais dinamiskai un statiskai saturam
Resursu efektivitāte Zems resursu patēriņš Vidējs resursu patēriņš Augstāks resursu patēriņš Optimizēts minimālam resursu patēriņam Augsta efektivitāte Augsta efektivitāte, īpaši WordPress
Slodzes balansēšana Ierobežota Ierobežota
Reversās starpniekservera atbalsts Ierobežots
SSL/TLS atbalsts Jā (ar Certbot integrāciju)
Kešatmiņa Pamata kešatmiņa, trešo pušu atbalsts Uz moduļiem balstīta, sarežģīta konfigurācija Ierobežota Jā (CDN kešatmiņa) Uzlabota, iebūvēta Uzlabota, integrēta
Platformas saderība Linux, Windows Linux, Windows Tikai Windows Google Cloud Vairākas platformas Linux, Windows
Konfigurācijas sarežģītība Vidēja Vidēja Vienkārša Sarežģīta Vienkārša Vienkārša
Galvenais lietošanas gadījums Augstas datplūsmas vietnes, statisks saturs Mazas līdz lielām vietnēm, dinamiskais saturs Windows vides Mākoņa lietojumprogrammas Drošība un kešatmiņa WordPress un augstas ātruma hostings

1. solis: Labākā VPS izvēle Nginx

Virtuālais privātais serveris (arī VPS) ir virtuālā mašīna, kas darbojas kā izolēta virtuāla vide uz fiziskā servera, kuru pieder un pārvalda mākoņa vai tīmekļa hostinga pakalpojumu sniedzējs.

Pirms ienirt nginx konfigurācijā, pārliecinieties, ka jums ir pareizais VPS jūsu vajadzībām. Nginx minimālās prasības ir pieticīgas, taču pareizā VPS izvēle ietekmē vispārējo nginx veiktspēju un jūsu spēju efektīvi optimizēt nginx.

Galvenie VPS izvēles faktori

  • Datplūsmas vajadzības: Izvēlieties VPS ar pietiekamiem resursiem paredzamajai datplūsmas izaugsmei. Augstas datplūsmas vietnēm apsveriet serverus ar vismaz 2 GB RAM un 2 CPU kodoliem, lai efektīvi optimizētu nginx.
  • Operētājsistēma: Optimālai nginx veiktspējai izmantojiet Linux bāzes VPS (ieteicama Ubuntu 20.04+ vai Debian 11+).
  • Veiktspēja un darbspēja: Meklējiet pakalpojumu sniedzējus ar 99,9%+ darbspējas garantijām un zemu latenci jūsu mērķauditorijai.
  • Mērogojamība un kontrole: Pārliecinieties, ka VPS ļauj viegli mērogot un nodrošina root piekļuvi pilnai nginx konfigurācijas kontrolei.
  • Budžetam draudzīgas iespējas:
    • Hostinger — aptuveni 40 USD gadā + 1 bezmaksas domēns iekļauts ar PROMO KODU = HIPSERGEYPBG
    • Zomro — no 15% līdz 40% atlaides, izmantojot PROMO KODU = zomro_379593
    • Kamatera

Nginx minimālās prasības: servera izmēru noteikšanas ceļvedis

Nginx izmēru noteikšanas izprašana palīdz jums izvēlēties pareizo VPS jūsu nginx izmēru noteikšanas ceļvedim:

  • RAM: Minimums 512 MB (1 GB+ ieteicams ražošanai)
  • CPU: Minimums 1 kodols (2+ kodoli augstai datplūsmai)
  • Krātuve: Minimums 10 GB (SSD ieteicams labākai veiktspējai)
  • Joslas platums: 1 TB+ mēnesī vidējas datplūsmas vietnēm

2. solis: Nginx instalēšana un pamata konfigurācija

Šī sadaļa aptver pilnu nginx konfigurācijas procesu, no instalēšanas līdz pamata iestatīšanai. Sekojiet šīm nginx labākās prakses soli pa solim norādēm, lai palaistu nginx jūsu serverī ar optimāliem nginx iestatījumiem.

Nginx instalēšana Ubuntu

Lai instalētu nginx Ubuntu, izmantojiet šādas komandas, lai atjauninātu pakotņu sarakstu un instalētu serveri:

Terminālis / Konsole
sudo apt update
sudo apt install nginx

Nginx lietošanas izpratne ietver šo būtisko komandu apguvi nginx palīdzībai un nginx statusa uzraudzībai:

Pārbaudīt nginx statusu:
sudo systemctl status nginx

Palaist nginx:
sudo systemctl start nginx

Apturēt nginx:
sudo systemctl stop nginx

Restartēt nginx:
sudo systemctl restart nginx

Atkārtoti ielādēt nginx (nepārtraucot savienojumus):
sudo systemctl reload nginx

Iespējot nginx automātisko palaišanu pie sāknēšanas:
sudo systemctl enable nginx

Nginx konfigurācijas failu izpratne

Nginx konfigurācijas faila atrašanās vieta parasti ir /etc/nginx/nginx.conf. Šeit jūs konfigurējat globālos nginx iestatījumus, piemēram, darbinieku procesus, savienojumus, žurnālu rakstīšanu un SSL protokolus nginx veiktspējas regulēšanai un nginx optimizācijai.

Nginx SSL labākā prakse 2024–2026: TLS konfigurācija

Šeit ir optimizēts galvenais nginx konfigurācijas piemērs ar detalizētiem paskaidrojumiem. Šī konfigurācija ievēro nginx konfigurācijas labāko praksi un nginx labāko praksi atjauninātu drošībai un veiktspējai:

nginx.conf
events {
    worker_connections 1024;  # Maksimālais vienlaicīgo savienojumu skaits katram darba procesam. To var pielāgot atkarībā no datplūsmas vajadzībām.
    }
    
http {
    sendfile on;  # Iespējo efektīvu failu pārsūtīšanu. Atstājiet ieslēgtu statisko failu apkalpošanai.
    tcp_nopush on;  # Optimizē TCP paketes lielu failu sūtīšanai. Atstājiet, kā ir, ja vien īpašas prasības nenosaka citādi.
    types_hash_max_size 2048;  # Ierobežo MIME tipu hash tabulas maksimālo izmēru. Parasti noklusējuma vērtība ir pietiekama.
    include /etc/nginx/mime.types;  # Iekļauj MIME tipu konfigurācijas failu, kas sasaista failu paplašinājumus ar MIME tipiem. Atstājiet, kā ir.
    default_type application/octet-stream;  # Noklusējuma MIME tips failiem, kuriem nav specifiska MIME tipa. Atstājiet, kā ir, ja vien nav nepieciešams norādīt ko citu.
    
    # SSL iestatījumi
ssl_protocols TLSv1.2 TLSv1.3; # Piespiedu kārtā izmanto modernos TLS protokolus. Saglabājiet to drošības nolūkos. ssl_prefer_server_ciphers on; # Nodrošina, ka drošiem savienojumiem priekšroka tiek dota servera šifriem. Atstājiet, kā ir. ssl_session_cache shared:SSL:10m; # Iespējo SSL sesiju kešatmiņu, lai uzlabotu veiktspēju turpmākajiem savienojumiem. ssl_session_timeout 10m; # Iestata sesiju kešatmiņas noildzi uz 10 minūtēm. Tas ir piemērots lielākajai daļai gadījumu. ssl_ciphers 'HIGH:!aNULL:!MD5'; # Norāda spēcīgus šifrus SSL/TLS protokoliem. Atstājiet, kā ir, ja vien nav nepieciešams īpašs komplekts. # Drošības galvenes
add_header X-Content-Type-Options nosniff; # Neļauj pārlūkprogrammām interpretēt failus kā citu MIME tipu. Saglabājiet drošībai. add_header X-Frame-Options DENY; # Neļauj vietni rādīt iframe elementos. Saglabājiet drošībai, ja vien nav nepieciešams citādi. add_header X-XSS-Protection "1; mode=block"; # Aizsargā pret XSS uzbrukumiem. Saglabājiet drošībai. server_tokens off; # Slēpj Nginx versijas informāciju. Atstājiet, kā ir, lai neatklātu servera informāciju. # Žurnalēšanas iestatījumi
access_log /var/log/nginx/access.log; # Norāda, kur žurnalēt piekļuves pieprasījumus. Saglabājiet, ja vien nevēlaties mainīt žurnālu atrašanās vietu. error_log /var/log/nginx/error.log; # Norāda, kur žurnalēt kļūdu ziņojumus. Saglabājiet, ja vien nav nepieciešams mainīt žurnālu atrašanās vietu. # Gzip iestatījumi
gzip on; # Iespējo Gzip saspiešanu labākai veiktspējai. Atstājiet ieslēgtu lielākajai daļai vietņu, lai samazinātu datu apjomu. gzip_vary on; # Informē starpniekserverus, ka atbilde mainās atkarībā no pieprasījuma Accept-Encoding galvenes. gzip_proxied any; # Iespējo Gzip visiem starpniekpieprasījumiem. Atstājiet, kā ir, ja vien konkrēts gadījums neprasa izmaiņas. gzip_comp_level 6; # Norāda saspiešanas līmeni. 6. līmenis ir labs līdzsvars starp ātrumu un saspiešanu. gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; # Norāda saspiežamos failu tipus. Šie ir izplatītākie tipi, kas gūst labumu no saspiešanas. Pielāgojiet pēc vajadzības. # Iekļaut virtuālo saimniekdatoru konfigurācijas
include /etc/nginx/sites-enabled/*; # Iekļauj visas konfigurācijas no sites-enabled direktorija. Atstājiet ieslēgtu, ja vien nav īpaša iemesla to atspējot. }

Padoms: Vienkārši kopējiet un ielīmējiet to failā /etc/nginx/nginx.conf, lai iegūtu optimizētu pamata konfigurāciju. (izmaiņas nav nepieciešamas)

3. solis: Jūsu Domain.com faila konfigurēšana

Pareiza domēna konfigurācija ir būtiska nginx veiktspējai. Šī sadaļa parāda jums, kā iestatīt virtuālos hostus (servera blokus), ievērojot nginx konfigurācijas labāko praksi un ieviešot nginx konfigurācijas optimizāciju ražošanas vidēm.

Jaunas domēna konfigurācijas izveidošana

Lai jūsu domēnam mapē /etc/nginx/sites-available/ izveidotu jaunu domain.com failu, neatverot to tieši, varat izmantot šādu komandu (nomainiet domain.com uz jūsu domēna nosaukumu):
Piemēram: KOLODYCH.com — tas ir mans domēna nosaukums.

Terminālis / Konsole:
sudo touch /etc/nginx/sites-available/domain.com

Šī komanda izveidos tukšu failu ar nosaukumu domain.com mapē sites-available. Kad fails ir izveidots, varat to rediģēt pēc vajadzības + izveidot simbolisko saiti uz sites-enabled, izmantojot šādu komandu:

Terminālis / Konsole:
sudo ln -s /etc/nginx/sites-available/domain.com /etc/nginx/sites-enabled/

Atveriet jūsu tikko izveidoto failu domain.com mapē /etc/nginx/sites-available/ un konfigurējiet to ar nginx labāko praksi drošībai un veiktspējas optimizācijai:

domain.com
# Pāradresācija no IPv4 adreses uz domēnu
server {
    listen 80;
    server_name 0.0.0.0;  # Jūsu IPv4 adrese
    return 301 https://domain.com$request_uri;  # Pāradresēt uz jūsu domain.com
}

# Pāradresācija no IPv6 adreses uz domēnu
server {
    listen [1:1:1:1:1:1:1:1]:80;  # Jūsu IPv6 adrese
    return 301 https://domain.com$request_uri;  # Pāradresēt uz jūsu domain.com
}

# Pāradresācija no www uz bez-www HTTP datplūsmai
server {
    listen 80;
    server_name www.domain.com;  # www domēns
    return 301 https://domain.com$request_uri;  # Pāradresēt no www uz bez-www
}

# Galvenais servera bloks jūsu domēnam
server {
    listen 80;
    server_name domain.com;  # Jūsu domēna vārds
    return 301 https://domain.com$request_uri;  # Piespiest izmantot HTTPS
}

# Servera bloks HTTPS apstrādei
server {
    listen 443 ssl http2;  # HTTPS + Iespējot HTTP/2 uzlabo veiktspēju, multipleksējot vairākus pieprasījumus vienā savienojumā, samazinot aizturi un piedāvājot citas priekšrocības.
    server_name domain.com;  # Domēns bez www

    ssl_certificate /etc/ssl/certificate.crt;  # Jūsu sertifikāts
    ssl_certificate_key /etc/ssl/private.key;   # Jūsu privātā atslēga
    ssl_trusted_certificate /etc/ssl/ca_bundle.crt;  # Jūsu CA pakete

    root /var/www/domain.com;  # Jūsu dokumentu saknes mape
index index.php index; # Pārliecinieties, ka index.php ir iekļauts # Kļūdu apstrāde error_page 404 /404; # Pielāgota 404 kļūdas lapa location = /404 { root /var/www/domain.com; # 404 kļūdas lapas atrašanās vieta internal; # Atzīmē to kā iekšēju, lai lietotāji nevarētu tai piekļūt tieši } location ~ \.php$ { include snippets/fastcgi-php.conf; # Iekļauj PHP konfigurācijas fragmentus fastcgi_pass unix:/var/run/php/php-fpm.sock; # Pārsūtīt PHP pieprasījumus uz PHP-FPM fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # Nepieciešams, lai PHP darbotos pareizi include fastcgi_params; # Iekļauj standarta FastCGI parametrus } # Kešot CSS, JS, attēlus, fontus un HTML failus uz 30 dienām location ~* \.(css|js|jpg|jpeg|png|gif|ico|svg|webp|woff|woff2|ttf|eot|html)$ { expires 30d; add_header Cache-Control "public"; } # Izvēles: Pielāgojiet klienta augšupielādes apjomu, ja nepieciešams client_max_body_size 10M; # Iestatīt maksimālo augšupielādes apjomu uz 10MB - levērojot failu augšupielādes labāko praksi } # Servera bloks HTTPS apstrādei priekš www server { listen 443 ssl; # HTTPS server_name www.domain.com; # www domēns ssl_certificate /etc/ssl/certificate.crt; # Jūsu sertifikāts ssl_certificate_key /etc/ssl/private.key; # Jūsu privātā atslēga ssl_trusted_certificate /etc/ssl/ca_bundle.crt; # Jūsu CA pakete return 301 https://domain.com$request_uri; # Pāradresēt no www uz bez-www }

SVARĪGI! Nomainiet domain.com ar jūsu domēna nosaukumu (Piemērs: kolodych.com, abc.org, petsof.net)

Nomainiet 0.0.0.0 ar jūsu faktisko IPv4 adresi. Varat to atrast, izmantojot komandu ifconfig vai ip a, vai pārbaudiet sava servera detaļas.

Nomainiet vai izdzēsiet 1:1:1:1:1:1:1:1 ar jūsu faktisko IPv6 adresi (ja piemērojams).

SSL sertifikāta iestatīšana

Iegūstiet SSL sertifikātus no pakalpojumu sniedzēja (piemēram, ZeroSSL vai Let's Encrypt). Augšupielādējiet tos mapē /etc/ssl/. Ievērojot nginx TLS labāko praksi 2024 un nginx ssl_prefer_server_ciphers labāko praksi 2024, pārliecinieties, ka šādi ceļi ir pareizi:

  • /etc/ssl/certificate.crt (SSL sertifikāts)
  • /etc/ssl/private.key (Privātā atslēga)
  • /etc/ssl/ca_bundle.crt (CA pakete)

Ievērojot iepriekš minētos soļus, jūs varat instalēt Nginx un iestatīt SSL, optimizējot savu serveri veiktspējai un drošībai ar pareiziem nginx pastiprināšanas ceļveža principiem.

Augšupielādējiet savu index un citus vietnes resursus mapē /var/www/your-domain.com

Testēt un atkārtoti ielādēt nginx

Testējiet Nginx konfigurāciju sintakses kļūdām, izmantojot nginx palīdzības komandas:

Testēt konfigurāciju
sudo nginx -t

Ja nav kļūdu, atkārtoti ielādējiet Nginx, lai piemērotu izmaiņas un paātrinātu nginx veiktspēju:

Atkārtoti ielādēt Nginx
sudo systemctl reload nginx

3*. solis: Failu augšupielādes ierobežojumu konfigurācija (client_max_body_size)

Pēc noklusējuma Nginx ierobežo failu augšupielādi līdz tikai 1 MB (3. solī — domain.com faila konfigurācijā tas jau ir iestatīts uz 10 MB). Ja tas izraisa "413 Request Entity Too Large" kļūdas, kad lietotāji mēģina augšupielādēt attēlus, dokumentus vai multivides failus -> labosim to tagad:

Kāds ir labākais client_max_body_size iestatījums?

Nav universālas atbildes — labākais client_max_body_size ir atkarīgs no jūsu lietošanas gadījuma:

  • Noklusējums (1 Mb): Piemērots vienkāršām vietnēm tikai ar veidlapām
  • 5 Mb–10 Mb: Standarts blogiem, uzņēmumu vietnēm ar attēlu augšupielādi
  • 20 Mb–50 Mb: E-komercijas vietnes, lietotāju profila augšupielādes, dokumentu pārvaldība
  • 100 Mb–500 Mb: Multivides vietnes, augstas izšķirtspējas attēlu galerijas, PDF repozitoriji
  • 1 Gb–2 Gb: Video platformas, lielu failu koplietošanas pakalpojumi, rezerves kopēšanas sistēmas

Labākās prakses konfigurācija:

Ieteicamie client_max_body_size iestatījumi
# Globālais noklusējums (konservatīvs)
http {
    client_max_body_size 10M;
    
    # Konkrēta vieta failu augšupielādei
    server {
        listen 80;
        server_name example.com;
        
        # Lielākā daļa lapu izmanto noklusējuma 10Mb
        
        # API galapunkts failu augšupielādei
        location /api/upload {
            client_max_body_size 100M;
        }
        
        # Administratora panelis mediju pārvaldībai
        location /admin/media {
            client_max_body_size 500M;
        }
        
        # Video augšupielādes galapunkts
        location /videos/upload {
            client_max_body_size 2G;
        }
    }
    # Vai izmantojiet atsevišķus servera blokus dažādiem apakšdomēniem
    
    # API apakšdomēns - lielu failu augšupielāde
    server {
        listen 443 ssl http2;
        server_name api.yourdomain.com;
        client_max_body_size 100M;
    }
    
    # Statisks blogs - minimālas augšupielādes
    server {
        listen 443 ssl http2;
        server_name blog.yourdomain.com;
        client_max_body_size 5M;
    }
}

Tipisko lietošanas gadījumu ieteikumi:

  • WordPress vietnes: 64 Mb–100 Mb (apstrādā multivides bibliotēkas augšupielādes, spraudņu/tēmu instalācijas)
  • REST API: 5 Mb–10 Mb (JSON datu lodes parasti ir mazas)
  • Failu koplietošanas platformas: 500 Mb–2 Gb (atkarīgs no maksimālā faila izmēra atļautā)
  • Kontaktformas: 5 Mb (pietiekami maziem pielikumiem)
  • E-mācību platformas: 250 Mb–500 Mb (kursu materiāli, prezentācijas, video)

⚠️ Drošības apsvērumi:

  • Neiestatatiet to pārāk augstu globāli — tas pakļauj jūs DoS uzbrukumiem (lietotāji augšupielādē milzīgus failus)
  • Izmantojiet atrašanās vietai specifiskus ierobežojumus, lai ierobežotu lielas augšupielādes tikai uz konkrētiem galapunktiem
  • Apvienojiet ar ātruma ierobežošanu, lai novērstu ļaunprātīgu izmantošanu
  • Uzraugiet diska vietu — lielas augšupielādes prasa krātuves kapacitāti
  • Apsveriet client_body_timeout izmantošanu, lai novērstu lēnu augšupielāžu uzbrukumus

Iestatījuma testēšana:

  1. Augšupielādējiet lielāko paredzamo faila tipu
  2. Ja saņemat 413 Request Entity Too Large kļūdu, palieliniet ierobežojumu
  3. Iestatiet ierobežojumu par 20–30% augstāku nekā jūsu maksimālais paredzamais faila izmērs
  4. Testējiet ar nginx -t pirms atkārtotas ielādes: nginx -s reload

Saistītā konfigurācija: Pielāgojiet arī client_body_buffer_size (noklusējums 16 k) un client_body_timeout (noklusējums 60 s) optimālai veiktspējai ar lielām augšupielādēm.

4. solis: .htaccess faila iestatījumu konfigurēšana

Uzlabotai drošībai un veiktspējai konfigurējiet savus .htaccess iestatījumus, ievērojot nginx gzip konfigurācijas labāko praksi un kešatmiņas stratēģijas, lai optimizētu nginx:

.htaccess
ErrorDocument 404 /404.html # Pielāgota kļūdu lapa 404 kļūdām

AddDefaultCharset UTF-8 # Iestata vietnes noklusējuma rakstzīmju kodējumu uz UTF-8

RewriteEngine On # Tas aktivizē mod_rewrite moduli, iespējojot URL pārakstīšanu

# Piespiest izmantot HTTPS
RewriteCond %{HTTPS} off # Tas pārbauda, vai savienojumam netiek izmantots HTTPS
RewriteRule ^(.*)$ https://domain.com$1 [L,R=301] # Pāradresē HTTP pieprasījumus uz HTTPS drošam savienojumam

# Pāradresēt IPv4 adresi uz domēnu
RewriteCond %{HTTP_HOST} ^0.0.0.0$ [OR] # Tas pārbauda, vai pieprasījums nāk uz jūsu IPv4 adresi
RewriteRule ^(.*)$ https://domain.com$1 [L,R=301] # Pāradresē visus pieprasījumus no IP adresēm uz jūsu domēnu

# Izvēles: Pāradresācija no www uz bez-www
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] # Tas pārbauda, vai URL sākas ar "www." (nejūtīgs pret reģistru)
RewriteRule ^(.*)$ https://domain.com$1 [L,R=301] # Pāradresē visus "www" pieprasījumus uz jūsu domēna versiju bez www, saglabājot pārējo URL daļu

# Gzip saspiešana
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css # Saspiež HTML, teksta, XML un CSS failus ātrākai ielādei
    AddOutputFilterByType DEFLATE application/javascript application/x-javascript application/xml # Saspiež JavaScript un XML failus
    AddOutputFilterByType DEFLATE image/svg+xml # Saspiež SVG attēlus
    AddOutputFilterByType DEFLATE application/rss+xml application/atom_xml # Saspiež RSS un Atom barotnes
    AddOutputFilterByType DEFLATE application/x-font-ttf application/x-font-opentype application/vnd.ms-fontobject # Saspiež fontu failus
    BrowserMatch ^Mozilla/4 gzip-only-text/html # Neļauj vecākām pārlūkprogrammām izmantot Gzip saspiešanu
    BrowserMatch ^Mozilla/4\.0[678] no-gzip # Neļauj vecākām pārlūkprogrammām izmantot Gzip saspiešanu
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html # Neļauj vecākām Internet Explorer versijām tikt izslēgtām no Gzip saspiešanas
    Header append Vary User-Agent # Nodrošina, ka saspiestie faili tiek sūtīti atbilstoši lietotāja aģentam
</IfModule>

# Kešatmiņas kontrole
<IfModule mod_expires.c>
    ExpiresActive On # Iespējo kešatmiņu statiskajiem failiem

    # Noklusējuma kešdarbes laiks
    ExpiresDefault "access plus 1 day" # Noklusējuma kešdarbes laiks ir 1 diena visiem failiem

    ExpiresByType text/css "access plus 1 day" # Kešot CSS failus uz 1 dienu

    # Kešot attēlus (JPEG, PNG, GIF, WebP, SVG) uz 1 gadu
    ExpiresByType image/jpeg "access plus 1 year" # Kešot JPEG attēlus uz 1 gadu
    ExpiresByType image/png "access plus 1 year" # Kešot PNG attēlus uz 1 gadu
    ExpiresByType image/gif "access plus 1 year" # Kešot GIF attēlus uz 1 gadu
    ExpiresByType image/webp "access plus 1 year" # Kešot WebP attēlus uz 1 gadu
    ExpiresByType image/svg+xml "access plus 1 year" # Kešot SVG attēlus uz 1 gadu
    
    # Kešot video failus (MP4, WebM, OGG, Quicktime) uz 1 gadu
    ExpiresByType video/mp4 "access plus 1 year" # Kešot MP4 video failus uz 1 gadu
    ExpiresByType video/webm "access plus 1 year" # Kešot WebM video failus uz 1 gadu
    ExpiresByType video/ogg "access plus 1 year" # Kešot OGG video failus uz 1 gadu
    ExpiresByType video/quicktime "access plus 1 year" # Kešot Quicktime video failus uz 1 gadu

    # Kešot JavaScript failus uz 1 gadu
    ExpiresByType application/javascript "access plus 1 year" # Kešot JavaScript failus uz 1 gadu
    ExpiresByType application/x-javascript "access plus 1 year" # Kešot X-JavaScript failus uz 1 gadu

    ExpiresByType application/pdf "access plus 1 year" # Kešot PDF failus uz 1 gadu

    # Kešot fontus uz 1 gadu
    ExpiresByType font/ttf "access plus 1 year" # Kešot TTF fontu failus uz 1 gadu
    ExpiresByType font/otf "access plus 1 year" # Kešot OTF fontu failus uz 1 gadu
    ExpiresByType font/woff "access plus 1 year" # Kešot WOFF fontu failus uz 1 gadu
    ExpiresByType font/woff2 "access plus 1 year" # Kešot WOFF2 fontu failus uz 1 gadu
</IfModule>

# Kešatmiņas kontroles galvenes (pārlūkprogrammām un CDN)
<IfModule mod_headers.c> 
    # Kešot CSS failus uz 1 dienu
    <FilesMatch "\.(css)$">
        Header set Cache-Control "max-age=86400, public" # Iestata kešatmiņu CSS failiem uz 1 dienu
    </FilesMatch>

    # Kešot attēlus uz 1 gadu
    <FilesMatch "\.(jpg|svg|jpeg|png|gif|webp)$">
        Header set Cache-Control "max-age=31536000, public" # Iestata kešatmiņu attēlu failiem uz 1 gadu
    </FilesMatch>
    
    # Kešot video failus na 1 gadu
    <FilesMatch "\.(mp4|webm|ogg|mov)$">
        Header set Cache-Control "max-age=31536000, public" # Iestata kešatmiņu video failiem uz 1 gadu
    </FilesMatch>

    # Kešot JavaScript failus uz 1 gadu
    <FilesMatch "\.(js)$">
        Header set Cache-Control "max-age=31536000, public" # Iestata kešatmiņu JavaScript failiem uz 1 gadu
    </FilesMatch>

    # Kešot failus PDF на 1 gadu
    <FilesMatch "\.(pdf)$">
        Header set Cache-Control "max-age=31536000, public" # Iestata kešatmiņu PDF failiem uz 1 gadu
    </FilesMatch>

    # Kešot fontus uz 1 gadu
    <FilesMatch "\.(ttf|otf|woff|woff2)$">
        Header set Cache-Control "max-age=31536000, public" # Iestata kešatmiņu fontu failiem uz 1 gadu
    </FilesMatch>
</IfModule>

# Strict-Transport-Security (HSTS) galvene ir kritiska drošības funkcija vietnēm, kas tiek apkalpotas caur HTTPS.
<IfModule mod_headers.c>
    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" # Nodrošina piespiedu HTTPS izmantošanu visiem apakšdomēniem uz 1 gadu
</IfModule>

SVARĪGI! Nomainiet domain.com ar jūsu faktisko domēna nosaukumu (Piemērs: kolodych.com, abc.org, petsof.net).

Nomainiet 0.0.0.0 ar jūsu faktisko IPv4 adresi. Varat to atrast, izmantojot komandu ifconfig vai ip a, vai pārbaudiet sava servera detaļas.

Pārliecinieties, ka jūsu DNS iestatījumi norāda uz pareizo IP adresi jūsu domēnam. Jūs varat konfigurēt DNS iestatījumus caur sava hostinga pakalpojumu sniedzēja informācijas paneli.

5. solis: Robots TXT faila piemērs

Pārliecinieties, ka jūsu vietne ir SEO draudzīga, konfigurējot savu robots.txt failu:

robots.txt
User-agent: *
Disallow: /private/
Allow: /public/
Sitemap: https://domain.com/sitemap.xml

SVARĪGI! Nomainiet domain.com ar jūsu faktisko domēna nosaukumu (Piemērs: kolodych.com, abc.org, petsof.net).

6. solis: XML vietnes kartes piemērs

Pirms pieprasāt vietnes indeksēšanu, pārliecinieties, ka vietnes kartes fails ir pēdējais vienums, ko izveidojat, apstiprinot, ka visi iestatījumi un lapas ir pabeigtas. Lūk, piemērs, kā formatēt savu vietnes karti optimālai meklētājprogrammas indeksēšanai:

sitemap.xml
<?xml version="1.0" encoding="UTF-8"?> <!-- XML deklarācija -->
<urlset xmlns="https://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:image="https://www.google.com/schemas/sitemap-image/1.1" xmlns:video="https://www.google.com/schemas/sitemap-video/1.1" xsi:schemaLocation="https://www.sitemaps.org/schemas/sitemap/0.9 https://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"> <!-- URL kopas deklarācija -->
<!-- Izveidots ar bezmaksas tiešsaistes vietnes kartes ģeneratoru www.xml-sitemaps.com --> <!-- Vietnes kartes ģeneratora komentārs -->
<url> <!-- Sākt URL ierakstu --> <loc>https://domain.com/</loc> <!-- Sākumlapas URL --> <lastmod>2024-08-13T12:36:05+00:00</lastmod> <!-- Pēdējo izmaiņu datums --> <priority>1.00</priority> <!-- Prioritāte = 1.00 TIKAI galvenajai lapai --> </url> <!-- Beigt URL ierakstu -->
<url> <!-- Sākt citu URL ierakstu --> <loc>https://domain.com/page1</loc> <!-- 1. lapas URL --> <lastmod>2024-10-24T04:19:18+00:00</lastmod> <!-- Pēdējo izmaiņu datums --> <priority>0.80</priority> <!-- Prioritāte = 0.8-0.9 svarīgām lapām, piemēram, pakalpojumiem, kategorijām --> <changefreq>monthly</changefreq> <!-- Izmaiņu biežums: nekad, katru gadu, katru mēnesi, katru nedēļu... --> <image:image> <!-- Sākt attēlu --> <image:loc>https://domain.com/images/image1.webp</image:loc> <!-- Attēla atrašanās vieta --> <image:caption>image_caption_text_here</image:caption> <!-- Attēla paraksts --> <image:title>Image_title_goes_here</image:title> <!-- Attēla nosaukums --> </image:image> <!-- Beigt attēlu --> </url> <!-- Beigt URL ierakstu -->
<url> <!-- Sākt citu URL ierakstu --> <loc>https://domain.com/page2</loc> <!-- 2. lapas URL --> <lastmod>2024-08-04</lastmod> <!-- Pēdējo izmaiņu datums --> <priority>0.6-0.7</priority> <!-- Prioritāte = 0.6-0.7 bieži atjauninātām lapām, piemēram, emuāra rakstiem --> <changefreq>monthly</changefreq> <!-- Izmaiņu biežums... līdz katru dienu, katru stundu, vienmēr ziņām tiešraidē --> </url> <!-- Beigt URL ierakstu -->
<!-- Pievienojiet šeit vairāk URL citām lapām --> <!-- Komentārs par vairāku URL pievienošanu --> </urlset> <!-- Beigt URL kopu -->

SVARĪGI! Nomainiet domain.com ar jūsu domēna nosaukumu (Piemērs: kolodych.com, abc.org, petsof.net), kā arī pārbaudiet visas atrašanās vietas https://, page1, page2, image1, image_caption_text_here un citas...

Bieži uzdotie jautājumi par Nginx konfigurāciju

Kā optimizēt nginx lielai datplūsmai?

Lai optimizētu nginx lielai datplūsmai, palieliniet worker_connections (2048+), iespējojiet HTTP/2, ieviesiet FastCGI kešatmiņu, izmantojiet gzip saspiešanu, optimizējiet buferu izmērus un konfigurējiet pareizos taimauta iestatījumus. Šī nginx augstās slodzes konfigurācijas pieeja nodrošina minimālu nginx latenci. Uzraugiet sava servera resursus un pielāgojiet nginx iestatījumus balstoties uz faktiskajiem datplūsmas modeļiem nepārtrauktai nginx veiktspējas regulēšanai.

Kādas ir nginx minimālās prasības?

Nginx minimālās prasības ir pieticīgas: 512 MB RAM, 1 CPU kodols un 10 GB krātuve. Tomēr ražošanas vidēm, kurām nepieciešama nginx veiktspēja un pareiza nginx izmēru noteikšana, mēs iesakām vismaz 1 GB RAM, 2 CPU kodolus un SSD krātuvi optimālai darbībai.

Kur atrodas nginx konfigurācijas fails?

Galvenā nginx konfigurācijas faila atrašanās vieta ir /etc/nginx/nginx.conf. Virtuālo hostu konfigurācijas parasti tiek glabātas mapē /etc/nginx/sites-available/ un iespējotas caur simboliskajām saitēm mapē /etc/nginx/sites-enabled/. Šo failu atrašanās vietu izpratne ir būtiska nginx konfigurācijas pārvaldībai.

Kā iespējot HTTP/2 nginx?

Lai iespējotu nginx HTTP/2, pievienojiet http2 savai listen direktīvai: listen 443 ssl http2;. HTTP/2 prasa SSL/TLS, tāpēc pārliecinieties, ka jums ir derīgi sertifikāti, konfigurēti ievērojot nginx TLS labāko praksi 2024. Tas ievērojami uzlabo nginx veiktspēju mūsdienu pārlūkprogrammām un palīdz paātrināt nginx atbildes laikus.

Kāda ir nginx labākā prakse drošībai?

Nginx drošības labākā prakse ietver: versiju numuru slēpšanu (server_tokens off), ātruma ierobežošanas ieviešanu, tikai mūsdienu TLS protokolu izmantošanu (TLSv1.2+), ievērojot nginx ssl_prefer_server_ciphers labāko praksi 2024, drošības galveņu pievienošanu (X-Frame-Options, CSP), HSTS iespējošanu, regulārus atjauninājumus un pareizu žurnālu uzraudzību. Ievērojiet šo nginx pastiprināšanas ceļvedi visaptverošai drošībai un regulāri pārskatiet nginx drošības padomus.

Kā pārbaudīt savu nginx konfigurāciju kļūdām?

Izmantojiet sudo nginx -t, lai pārbaudītu savu nginx konfigurāciju sintakses kļūdām pirms izmaiņu piemērošanas. Šī komanda validē jūsu konfigurācijas failus un ziņo par visām problēmām, nodrošinot būtisku nginx palīdzību konfigurācijas laikā. Vienmēr testējiet pirms atkārtotas ielādes ar sudo systemctl reload nginx, lai nodrošinātu nginx konfigurācijas labāko praksi.

Kā uzlabot nginx veiktspēju?

Uzlabojiet nginx veiktspēju, izmantojot: darbinieku procesu optimizāciju, saspiešanas iespējošanu ar nginx gzip konfigurācijas labāko praksi, kešatmiņas ieviešanu (FastCGI, pārlūkprogramma), buferu izmēru optimizāciju, ieskaitot client_max_body_size, HTTP/2 izmantošanu, pareizu taimauta iestatīšanu, efektīvu statisku saturu un CDN ieviešanu. Regulāra nginx veiktspējas regulēšana un nginx regulēšana balstoties uz datplūsmas analīzi ir būtiska nginx optimizācijai.

Kāds ir labākais client_max_body_size iestatījums?

Tas ir atkarīgs no jūsu lietošanas gadījuma: 10 Mb pamata vietnēm, 64 MB–100 MB WordPress, 500 MB–2 Gb video platformām. Skatiet mūsu pilno client_max_body_size konfigurācijas ceļvedi 3*. solī, lai iegūtu detalizētus ieteikumus un kodu piemērus.

Kāda ir atšķirība starp nginx un Apache?

Nginx izmanto uz notikumiem balstītu arhitektūru ar zemāku resursu patēriņu un labāku nginx veiktspēju statiskam saturam un augstai vienlaicībai, padarot to ideālu, kad jums ir nepieciešams optimizēt nginx. Apache izmanto uz procesiem balstītu modeli, labāku dinamiskam saturam un .htaccess atbalstam. Nginx prasa tiešus nginx konfigurācijas failu labojumus, kamēr Apache ļauj izmantot katras mapes .htaccess failus. Augstas veiktspējas serveriem, nginx parasti piedāvā labākas nginx latences īpašības.

Secinājumi: Nginx konfigurācijas apgūšana maksimālai veiktspējai

Šis visaptverošais nginx ceļvedis ir aptveris visu — no pamata instalēšanas līdz uzlabotām nginx optimizācijas tehnikām. Ievērojot šo nginx labāko praksi un ieviešot pareizu nginx konfigurāciju, jūs varat veidot augstas veiktspējas, drošu tīmekļa serveri, kas spēj apstrādāt ievērojamu datplūsmu ar minimālu nginx latenci.

Galvenie secinājumi

  • Nginx veiktspēja: Pareiza darbinieku procesu, buferu un kešatmiņas konfigurācija dramatiski uzlabo veiktspēju. Izmantojiet šo nginx veiktspējas regulēšanas ceļvedi nginx optimizācijas ātrajam startam.
  • Drošība pirmajā vietā: Ieviesiet nginx drošības labāko praksi, ieskaitot mūsdienu TLS, ievērojot nginx TLS labāko praksi 2024 un nginx ssl_prefer_server_ciphers labāko praksi 2024, drošības galvenes un ātruma ierobežošanu. Izmantojiet šo nginx pastiprināšanas ceļvedi ar nginx drošības padomiem.
  • Regulāra apkope: Testējiet konfigurācijas, izmantojot nginx palīdzības komandas, uzraugiet nginx statusu un atjauniniet nginx optimālai darbībai.
  • Optimizācija: Izmantojiet HTTP/2, ieviesiet nginx gzip konfigurācijas labāko praksi un pareizu kešatmiņu, lai optimizētu nginx un paātrinātu nginx labākai lietotāja pieredzei.
  • Konfigurācijas pārvaldība: Uzturiet savu nginx konfigurāciju sakārtotu, dokumentētu un versiju kontrolētu, ievērojot nginx konfigurācijas labāko praksi un nginx konfigurācijas labāko praksi 2025.

Neatkarīgi no tā, vai darbināt maza uzņēmuma vietni vai gatavojaties optimizēt nginx lielai datplūsmai lietojumprogrammām ar nginx augstās slodzes konfigurāciju, šis ceļvedis nodrošina pamatu veiksmīgam nginx izvietošanai. Atcerieties pastāvīgi uzraudzīt veiktspēju, pielāgot nginx iestatījumus balstoties uz reālo lietošanu, ievērojot šo nginx izmēru noteikšanas ceļvedi, un saglabājiet informētību par jaunāko nginx dokumentāciju un drošības paziņojumiem.

Tiem, kas veido nginx pamatu augstas veiktspējas serverus no nulles, šis nginx konfigurācijas ceļvedis piedāvā pilnīgu ceļa karti no nginx minimālo prasību un nginx izmēru noteikšanas izpratnes līdz uzlabotu nginx regulēšanas un nginx konfigurācijas optimizācijas stratēģiju ieviešanai. Ievērojiet šo nginx labāko praksi soli pa solim optimāliem rezultātiem.