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
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:
| Funkcija | Nginx | Apache | Microsoft | 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 | Jā | Ierobežota | Ierobežota | Jā | Jā | Jā |
| Reversās starpniekservera atbalsts | Jā | Jā | Ierobežots | Jā | Jā | Jā |
| SSL/TLS atbalsts | Jā (ar Certbot integrāciju) | Jā | Jā | Jā | Jā | Jā |
| 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:
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:
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:
sudo systemctl status nginx
sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx
sudo systemctl reload nginx
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:
events {
worker_connections 1024; # Max simultaneous connections per worker process. You can adjust this based on traffic needs.
}
http {
sendfile on; # Enables efficient file transfers. Leave enabled for serving static files.
tcp_nopush on; # Optimizes TCP packets for sending large files. Leave as is unless specific requirements suggest otherwise.
types_hash_max_size 2048; # Limits the maximum size of the hash table for MIME types. Usually, the default value is sufficient.
include /etc/nginx/mime.types; # Includes the MIME types configuration file that maps file extensions to MIME types. Leave as is.
default_type application/octet-stream; # Default MIME type for files that don't have a specific MIME type. Leave as is unless you need to specify something else.
# SSL Settings
ssl_protocols TLSv1.2 TLSv1.3; # Enforces modern TLS protocols. Keep this for security purposes.
ssl_prefer_server_ciphers on; # Ensures the server's ciphers are preferred for secure connections. Leave as is.
ssl_session_cache shared:SSL:10m; # Enables caching of SSL sessions to improve performance on subsequent connections.
ssl_session_timeout 10m; # Sets the session cache timeout to 10 minutes. This is fine for most use cases.
ssl_ciphers 'HIGH:!aNULL:!MD5'; # Specifies strong ciphers for SSL/TLS. Leave as is unless you need a specific set.
# Security Headers
add_header X-Content-Type-Options nosniff; # Prevents browsers from interpreting files as a different MIME type. Keep for security.
add_header X-Frame-Options DENY; # Prevents the site from being displayed in iframes. Keep for security unless needed otherwise.
add_header X-XSS-Protection "1; mode=block"; # Protects against cross-site scripting (XSS) attacks. Keep for security.
server_tokens off; # Hides Nginx version information. Keep as is to avoid revealing server details.
# Logging Settings
access_log /var/log/nginx/access.log; # Defines where to log access requests. Keep unless you want to change the log location.
error_log /var/log/nginx/error.log; # Defines where to log error messages. Keep unless you need to change the log location.
# Gzip Settings
gzip on; # Enables Gzip compression for better performance. Keep enabled for most sites to reduce data size.
gzip_vary on; # Informs proxies that the response varies based on the request's Accept-Encoding header.
gzip_proxied any; # Enables Gzip for all proxied requests. Keep as is unless a specific case requires modification.
gzip_comp_level 6; # Defines the compression level. Level 6 is a good balance between speed and compression.
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; # Specifies file types to compress. These are common types that benefit from compression. Adjust as needed based on your site’s content.
# Include virtual host configurations
include /etc/nginx/sites-enabled/*; # Includes all the configurations from the sites-enabled directory. Keep enabled unless you have a specific reason to disable it.
}
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.
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:
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:
# Redirect from IPv4 address to the domain
server {
listen 80;
server_name 0.0.0.0; # Your IPv4 address
return 301 https://domain.com$request_uri; # Redirect to your domain.com
}
# Redirect from IPv6 address to the domain
server {
listen [1:1:1:1:1:1:1:1]:80; # Your IPv6 address
return 301 https://domain.com$request_uri; # Redirect to your domain.com
}
# Redirect from www to non-www for HTTP traffic
server {
listen 80;
server_name www.domain.com; # www domain
return 301 https://domain.com$request_uri; # Redirect www to non-www
}
# Main server block for your domain
server {
listen 80;
server_name domain.com; # Your domain name
return 301 https://domain.com$request_uri; # Force HTTPS
}
# Server block for handling HTTPS
server {
listen 443 ssl http2; # HTTPS + Enable HTTP/2 improves performance by multiplexing multiple requests over a single connection, reducing latency, and offering other benefits.
server_name domain.com; # Non-www domain
ssl_certificate /etc/ssl/certificate.crt; # Your certificate
ssl_certificate_key /etc/ssl/private.key; # Your private key
ssl_trusted_certificate /etc/ssl/ca_bundle.crt; # Your CA bundle
root /var/www/domain.com; # Your document root
index index.php index; # Ensure index.php is included
# Error handling
error_page 404 /404; # Custom 404 error page
location = /404 {
root /var/www/domain.com; # Location of the 404 error page
internal; # Marks it as internal, so users can't access it directly
}
location ~ \.php$ {
include snippets/fastcgi-php.conf; # Includes PHP configuration snippets
fastcgi_pass unix:/var/run/php/php-fpm.sock; # Pass PHP requests to PHP-FPM
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # Required for PHP to work correctly
include fastcgi_params; # Includes standard fastcgi parameters
}
# Cache CSS, JS, images, fonts, and HTML files for 30 days
location ~* \.(css|js|jpg|jpeg|png|gif|ico|svg|webp|woff|woff2|ttf|eot|html)$ {
expires 30d;
add_header Cache-Control "public";
}
# Optional: Adjust client upload size if necessary
client_max_body_size 10M; # Set maximum upload size to 10MB - Following the Best Practices for File Uploads
}
# Server block for handling HTTPS for www
server {
listen 443 ssl; # HTTPS
server_name www.domain.com; # www domain
ssl_certificate /etc/ssl/certificate.crt; # Your certificate
ssl_certificate_key /etc/ssl/private.key; # Your private key
ssl_trusted_certificate /etc/ssl/ca_bundle.crt; # Your CA bundle
return 301 https://domain.com$request_uri; # Redirect www to non-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:
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:
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:
# Global default (conservative)
http {
client_max_body_size 10M;
# Specific location for file uploads
server {
listen 80;
server_name example.com;
# Most pages use default 10Mb
# API endpoint for file uploads
location /api/upload {
client_max_body_size 100M;
}
# Admin panel for media management
location /admin/media {
client_max_body_size 500M;
}
# Video upload endpoint
location /videos/upload {
client_max_body_size 2G;
}
}
# Or use separate server blocks for different subdomains
# API subdomain - large file uploads
server {
listen 443 ssl http2;
server_name api.yourdomain.com;
client_max_body_size 100M;
}
# Static blog - minimal uploads
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_timeoutizmantošanu, lai novērstu lēnu augšupielāžu uzbrukumus
Iestatījuma testēšana:
- Augšupielādējiet lielāko paredzamo faila tipu
- Ja saņemat
413 Request Entity Too Largekļūdu, palieliniet ierobežojumu - Iestatiet ierobežojumu par 20–30% augstāku nekā jūsu maksimālais paredzamais faila izmērs
- Testējiet ar
nginx -tpirms 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:
ErrorDocument 404 /404.html # Custom error page for 404 errors
AddDefaultCharset UTF-8 # Sets the default character encoding for your website to UTF-8
RewriteEngine On # This activates the mod_rewrite engine, enabling the use of URL rewrites
# Force HTTPS
RewriteCond %{HTTPS} off # This checks if the connection is not using HTTPS
RewriteRule ^(.*)$ https://domain.com$1 [L,R=301] # Redirects HTTP requests to HTTPS for a secure connection
# Redirect IPv4 address to domain
RewriteCond %{HTTP_HOST} ^0.0.0.0$ [OR] # This checks if the request is coming to your IPv4 address
RewriteRule ^(.*)$ https://domain.com$1 [L,R=301] # Redirects any requests from the IP addresses to your domain
# Optional: Redirect from www to non-www
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] # This checks if the URL starts with "www." (case-insensitive)
RewriteRule ^(.*)$ https://domain.com$1 [L,R=301] # Redirects any "www" requests to the non-www version of your domain, maintaining the rest of the URL
# Gzip Compression
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css # Compresses HTML, plain text, XML, and CSS files for faster loading
AddOutputFilterByType DEFLATE application/javascript application/x-javascript application/xml # Compresses JavaScript and XML files
AddOutputFilterByType DEFLATE image/svg+xml # Compresses SVG images
AddOutputFilterByType DEFLATE application/rss+xml application/atom_xml # Compresses RSS and Atom feeds
AddOutputFilterByType DEFLATE application/x-font-ttf application/x-font-opentype application/vnd.ms-fontobject # Compresses font files
BrowserMatch ^Mozilla/4 gzip-only-text/html # Prevents older browsers from using gzip compression
BrowserMatch ^Mozilla/4\.0[678] no-gzip # Prevents older browsers from using gzip compression
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html # Prevents older versions of Internet Explorer from being excluded from gzip compression
Header append Vary User-Agent # Makes sure that compressed files are sent according to the user agent
</IfModule>
# Cache Control
<IfModule mod_expires.c>
ExpiresActive On # Enables caching for static files
# Default cache time
ExpiresDefault "access plus 1 day" # Default cache time is 1 day for all files
ExpiresByType text/css "access plus 1 day" # Cache CSS files for 1 day
# Cache images (JPEG, PNG, GIF, WebP, SVG) for 1 year
ExpiresByType image/jpeg "access plus 1 year" # Cache JPEG images for 1 year
ExpiresByType image/png "access plus 1 year" # Cache PNG images for 1 year
ExpiresByType image/gif "access plus 1 year" # Cache GIF images for 1 year
ExpiresByType image/webp "access plus 1 year" # Cache WebP images for 1 year
ExpiresByType image/svg+xml "access plus 1 year" # Cache SVG images for 1 year
# Cache video files (MP4, WebM, OGG, Quicktime) for 1 year
ExpiresByType video/mp4 "access plus 1 year" # Cache MP4 video files for 1 year
ExpiresByType video/webm "access plus 1 year" # Cache WebM video files for 1 year
ExpiresByType video/ogg "access plus 1 year" # Cache OGG video files for 1 year
ExpiresByType video/quicktime "access plus 1 year" # Cache Quicktime video files for 1 year
# Cache JavaScript files for 1 year
ExpiresByType application/javascript "access plus 1 year" # Cache JavaScript files for 1 year
ExpiresByType application/x-javascript "access plus 1 year" # Cache X-JavaScript files for 1 year
ExpiresByType application/pdf "access plus 1 year" # Cache PDF files for 1 year
# Cache fonts for 1 year
ExpiresByType font/ttf "access plus 1 year" # Cache TTF font files for 1 year
ExpiresByType font/otf "access plus 1 year" # Cache OTF font files for 1 year
ExpiresByType font/woff "access plus 1 year" # Cache WOFF font files for 1 year
ExpiresByType font/woff2 "access plus 1 year" # Cache WOFF2 font files for 1 year
</IfModule>
# Cache Control Headers (for browsers and CDNs)
<IfModule mod_headers.c>
# Cache CSS files for 1 day
<FilesMatch "\.(css)$">
Header set Cache-Control "max-age=86400, public" # Sets cache for CSS files to 1 day
</FilesMatch>
# Cache images for 1 year
<FilesMatch "\.(jpg|svg|jpeg|png|gif|webp)$">
Header set Cache-Control "max-age=31536000, public" # Sets cache for image files to 1 year
</FilesMatch>
# Cache video files for 1 year
<FilesMatch "\.(mp4|webm|ogg|mov)$">
Header set Cache-Control "max-age=31536000, public" # Sets cache for video files to 1 year
</FilesMatch>
# Cache JavaScript files for 1 year
<FilesMatch "\.(js)$">
Header set Cache-Control "max-age=31536000, public" # Sets cache for JavaScript files to 1 year
</FilesMatch>
# Cache PDFs for 1 year
<FilesMatch "\.(pdf)$">
Header set Cache-Control "max-age=31536000, public" # Sets cache for PDF files to 1 year
</FilesMatch>
# Cache fonts for 1 year
<FilesMatch "\.(ttf|otf|woff|woff2)$">
Header set Cache-Control "max-age=31536000, public" # Sets cache for font files to 1 year
</FilesMatch>
</IfModule>
# The Strict-Transport-Security (HSTS) header is a critical security feature for websites served over HTTPS.
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" # Ensures HTTPS is enforced for all subdomains for 1 year
</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:
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:
<?xml version="1.0" encoding="UTF-8"?> <!-- XML declaration -->
<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 Set Declaration -->
<!-- Created with Free Online Sitemap Generator www.xml-sitemaps.com --> <!-- Sitemap Generator Comment -->
<url> <!-- Start URL entry -->
<loc>https://domain.com/</loc> <!-- Homepage URL -->
<lastmod>2024-08-13T12:36:05+00:00</lastmod> <!-- Last Modified Date -->
<priority>1.00</priority> <!-- Priority = 1.00 for the main page ONLY -->
</url> <!-- End URL entry -->
<url> <!-- Start another URL entry -->
<loc>https://domain.com/page1</loc> <!-- Page 1 URL -->
<lastmod>2024-10-24T04:19:18+00:00</lastmod> <!-- Last Modified Date -->
<priority>0.80</priority> <!-- Priority = 0.8-0.9 for Important pages like Services, Categories -->
<changefreq>monthly</changefreq> <!-- Change Frequency from never, yearly, monthly, weekly... -->
<image:image> <!-- Start Image -->
<image:loc>https://domain.com/images/image1.webp</image:loc> <!-- Image Location -->
<image:caption>image_caption_text_here</image:caption> <!-- Image Caption -->
<image:title>Image_title_goes_here</image:title> <!-- Image Title -->
</image:image> <!-- End Image -->
</url> <!-- End URL entry -->
<url> <!-- Start another URL entry -->
<loc>https://domain.com/page2</loc> <!-- Page 2 URL -->
<lastmod>2024-08-04</lastmod> <!-- Last Modified Date -->
<priority>0.6-0.7</priority> <!-- Priority = 0.6-0.7 for frequently updated pages like blog articles -->
<changefreq>monthly</changefreq> <!-- Change Frequency ... till daily, hourly, always for live news -->
</url> <!-- End URL entry -->
<!-- Add more URLs here for other pages --> <!-- Comment for adding more URLs -->
</urlset> <!-- End URL Set -->
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.