![Kā iestatīt Luma mājas Wi-Fi sistēmu](/f/0a06abde5fe831cdfa6ae768e10b7617.jpg?width=100&height=100)
NGINX būdams konsolidēts atvērtā pirmkoda, augstas veiktspējas tīmekļa serveris, kas paātrina satura un lietojumprogrammu piegādi, uzlabo drošību un uzlabo mērogojamību. Viens no visbiežāk izmantotajiem gadījumiem Nginx ir Satura kešatmiņa, kas ir visefektīvākais veids, kā uzlabot vietnes veiktspēju.
Lasīt arī: 10 populārākie Linux atvērtā pirmkoda kešatmiņas rīki
Tu vari izmantot NGINX paātrināt vietējās izcelsmes serverus, konfigurējot to kešatmiņas atbildēm no augšupējiem serveriem, kā arī izveidot malas serverus satura piegādes tīkliem (CDN). NGINX nodrošina dažus lielākos CDN.
Kad konfigurēts kā kešatmiņa, NGINX:
Šajā rakstā jūs uzzināsit, kā konfigurēt NGINX kā Satura kešatmiņa operētājsistēmā Linux, lai jūsu tīmekļa serveri darbotos pēc iespējas efektīvāk.
Tev vajadzētu būt NGINX ja tas nav instalēts jūsu Linux serverī, izpildiet šos norādījumus, lai instalētu Nginx:
Statisks saturs ir vietnes saturs, kas dažādās lapās paliek nemainīgs (nemainās). Statiskā satura piemēri ir tādi faili kā attēli, video, dokumenti; CSS failus un JavaScript failus.
Ja jūsu vietnē tiek izmantots daudz statiska satura, varat optimizēt tā veiktspēju, iespējojot klienta puses kešatmiņu, kur pārlūkprogramma saglabā statiskā satura kopijas ātrākai piekļuvei.
Sekojošā parauga konfigurācija ir piemērota, vienkārši nomainiet www.example.com
ar jūsu vietnes nosaukuma URL un pēc vajadzības veiciet izmaiņas citos ceļu nosaukumos.
serveris { # aizstājiet sava tīmekļa servera URL ar www.example.com servera_nosaukumu www.example.com; root/var/www/example.com/htdocs; indekss indekss.php; access_log/var/log/nginx/example.com.access.log; error_log/var/log/nginx/example.com.error.log; location / {try_files $ uri $ uri / /index.php?$args; } atrašanās vieta ~ .php $ {try_files $ uri = 404; iekļaut fastcgi_params; # aizstājiet sava WordPress servera ligzdu vai adresi un portu fastcgi_pass unix: /var/run/php5-fpm.sock; #fastcgi_pass 127.0.0.1:9000; } atrašanās vieta ~*. (ogg | ogv | svg | svgz | eot | otf | woff | mp4 | ttf | css | rss | atoms | js | jpg | jpeg | gif | png | ico | zip | tgz | gz | rar | bz2 | doc | xls | exe | ppt | tar | mid | midi | wav | bmp | rtf) $ {beidzas maksimums; log_not_found off; access_log off; } }
NGINX izmanto pastāvīgu diska kešatmiņu, kas atrodas kaut kur lokālajā failu sistēmā. Tāpēc sāciet, izveidojot vietējo diska direktoriju kešatmiņā esošā satura glabāšanai.
# mkdir -p/var/cache/nginx
Pēc tam kešatmiņas direktorijā iestatiet atbilstošo īpašumtiesību. Tam vajadzētu piederēt NGINX lietotājs (nginx) un grupa (nginx) sekojoši.
# chown nginx: nginx/var/cache/nginx.
Tagad turpiniet, lai redzētu, kā zemāk esošajā sadaļā iespējot dinamisko saturu Nginx.
FastCGI (vai FCGI) ir plaši izmantots protokols mijiedarbībai ar interaktīvām lietojumprogrammām, piemēram PHP ar tīmekļa serveriem, piemēram NGINX. Tas ir paplašinājums CGI (Kopējā vārtejas saskarne).
Galvenā priekšrocība FCGI ir tas, ka tas vienā procesā pārvalda vairākus CGI pieprasījumus. Bez tā tīmekļa serverim ir jāatver jauns process (tas ir jākontrolē, jāapstrādā pieprasījums un jāslēdz) katram klienta pakalpojuma pieprasījumam.
Apstrādāt PHP skripti a LEMP steku izvietošana, NGINX izmanto FPM (FastCGI procesa pārvaldnieks) vai PHP-FPM, populāra alternatīva PHP FastCGI ieviešana. Reiz PHP-FPM process notiek, NGINX ir konfigurēts tā starpniekservera pieprasījumiem apstrādei. Tādējādi NGINX var konfigurēt arī, lai saglabātu kešatmiņas atbildes no PHP-FPM aizmugures lietojumprogrammu serveris.
Zem NGINX, FastCGI satura kešatmiņa tiek deklarēta, izmantojot direktīvu ar nosaukumu fastcgi_cache_path
augstākajā līmenī http {}
kontekstā NGINX konfigurācijas struktūrā. Varat arī pievienot fastcgi_cache_key
kas nosaka atslēgu (pieprasījuma identifikatoru) kešatmiņā saglabāšanai.
Turklāt, lai lasītu augšupvērstās kešatmiņas statusu, pievienojiet add_header X-kešatmiņas statuss direktīvas ietvaros http {}
konteksts - tas ir noderīgi atkļūdošanas nolūkos.
Pieņemot, ka jūsu vietnes servera bloka konfigurācijas fails atrodas vietnē /etc/nginx/conf.d/testapp.conf vai /etc/nginx/sites-available/testapp.conf (zem Ubuntu un tā atvasinājumiem) atveriet rediģēšanas failu un faila augšdaļā pievienojiet šādas rindas.
fastcgi_cache_path/var/cache/nginx līmeņi = 1: 2 key_zone = CACHEZONE: 10m; neaktīvs = 60m max_izmērs = 40m; fastcgi_cache_key "$ schema $ request_method $ host $ request_uri"; add_header X-Cache $ upstream_cache_status;
fastcgi_cache_path
direktīva nosaka parametru skaitu, kas ir:
Mainīgie lielumi fastcgi_cache_key
direktīva ir aprakstīta zemāk.
NGINX tos izmanto, aprēķinot pieprasījuma atslēgu (identifikatoru). Svarīgi ir tas, ka, lai klientam nosūtītu kešatmiņā saglabāto atbildi, pieprasījumam ir jābūt tādai pašai atslēgai kā kešatmiņā saglabātajai atbildei.
Tāpat, $ upstream_cache_status
mainīgais add_header X-kešatmiņas statuss direktīva tiek aprēķināta katram pieprasījumam, uz kuru NGINX atbild, neatkarīgi no tā, vai tas ir a MISS (atbilde nav atrasta kešatmiņā, saņemta no lietojumprogrammu servera) vai a SIST (atbilde tiek sniegta no kešatmiņas) vai jebkuru citu atbalstīto vērtību.
Tālāk, ietvaros atrašanās vietu
direktīva, kas nosūta PHP pieprasījumus PHP-FPM, izmanto fastcgi_cache
direktīvas, lai aktivizētu tikko iepriekš definēto kešatmiņu.
Iestatiet arī kešatmiņas laiku dažādām atbildēm, izmantojot fastcgi_cache_valid
direktīva, kā parādīts attēlā.
fastcgi_cache CACHEZONE; fastcgi_cache_valid 60m;
Ja ir norādīts tikai kešatmiņas glabāšanas laiks, kā tas ir mūsu gadījumā 200, 301, un 302 atbildes tiek saglabātas kešatmiņā. Bet jūs varat arī skaidri norādīt atbildes vai izmantot jebkuru (jebkuram atbildes kodam):
fastcgi_cache CACHEZONE; fastcgi_cache_valid 200 301 203 60m; fastcgi_cache_valid 404 10m; VAI. fastcgi_cache CACHEZONE; fastcgi_cache_valid jebkurš 10 m;
Lai iestatītu minimālo reižu skaitu, pirms atbildes kešatmiņā jāiesniedz pieprasījums ar to pašu atslēgu, iekļaujiet fastcgi_cache_min_uses
direktīvā, vai nu http {}
vai serveris {}
vai atrašanās vieta {}
kontekstā.
fastcgi_cache_min_uses 3.
Lai iespējotu atkārtotu kešatmiņas vienību derīguma termiņa beigas, izmantojot nosacījuma pieprasījumus ar “Ja modificēts kopš" un "Ja nav-atbilst”Galvenes laukus, pievienojiet fastcgi_cache_revalidate
direktīvas ietvaros http {}
vai serveris {}
vai atrašanās vieta {}
kontekstā.
fastcgi_cache_revalidate on;
Varat arī pamācīt NGINX lai saglabātu kešatmiņā saglabāto saturu, kad sākotnējais serveris vai FCGI serveris ir izslēgts, izmantojot proxy_cache_use_stale
direktīvā, atrašanās vietas direktīvas ietvaros.
Šī parauga konfigurācija nozīmē, ka tad, kad NGINX saņem kļūdu, taimautu un jebkuru no norādītajām kļūdām no augšupvērstā servera, un kešatmiņā esošajā saturā ir novecojusi pieprasītā faila versija, tā piegādā novecojušo failu.
proxy_cache_use_stale kļūdas taimauts http_500;
Vēl viena noderīga direktīva FCGI kešatmiņas darbības precizēšanai ir fastcgi_cache_background_update
kas darbojas kopā ar proxy_cache_use_stale
direktīva. Ja tā ir ieslēgta, tā uzdod NGINX apkalpot novecojušu saturu, ja klienti pieprasa failu, kura derīguma termiņš ir beidzies vai tiek atjaunināts no augšupvērstā servera.
fastcgi_cache_background_update on;
fastcgi_cache_lock
ir noderīga arī kešatmiņas veiktspējas precizēšanai, jo, ja vairāki klienti pieprasa to pašu saturu, kas nav kešatmiņā, NGINX pārsūtīs augšupvērstajam serverim tikai pirmo pieprasījumu, atbildi saglabās kešatmiņā un pēc tam apkalpos citus klienta pieprasījumus no kešatmiņa.
fastcgi_cache_lock on;
Pēc visu iepriekš minēto izmaiņu veikšanas NGINX konfigurācijas failu, saglabājiet un aizveriet to. Pēc tam pārbaudiet, vai konfigurācijas struktūrā nav sintakses kļūdu, pirms restartējat pakalpojumu NGINX.
# nginx -t. # systemctl restartējiet nginx.
Pēc tam pārbaudiet, vai kešatmiņa darbojas pareizi, mēģiniet piekļūt savai tīmekļa lietojumprogrammai vai vietnei, izmantojot tālāk norādītās darbības čokurošanās komanda (pirmajā reizē jānorāda a MISS, bet turpmākajos pieprasījumos jānorāda a SIST kā parādīts ekrānuzņēmumā).
# čokurošanās -Es http://testapp.tecmint.com.
Šeit ir vēl viens ekrānuzņēmums, kurā parādīts NGINX, kas apkalpo novecojušus datus.
Ir iespējams noteikt nosacījumus, saskaņā ar kuriem NGINX nevajadzētu sūtīt klientiem kešatmiņā saglabātas atbildes, izmantojot fastcgi_cache_bypass
direktīva. Un, lai uzdotu NGINX nekādā gadījumā nesaglabāt kešatmiņā atbildes no augšupvērstā servera, izmantojiet fastcgi_no_cache
.
Piemēram, ja vēlaties POST pieprasījumus un vietrāžus URL ar vaicājuma virkni vienmēr pāriet uz PHP. Vispirms deklarējiet if paziņojumu, lai iestatītu nosacījumu šādi.
iestatīt $ skip_cache 0; ja ($ request_method = POST) {set $ skip_cache 1; }
Pēc tam aktivizējiet iepriekš minēto izņēmumu atrašanās vietu
direktīva, kas nosūta PHP pieprasījumus PHP-FPM, izmantojot fastcgi_cache_bypass
un fastcgi_no_cache
direktīvas.
fastcgi_cache_bypass $ skip_cache; fastcgi_no_cache $ skip_cache;
Ir daudzas citas jūsu vietnes daļas, kurās, iespējams, nevēlaties iespējot satura kešatmiņu. Tālāk ir sniegts NGINX konfigurācijas piemērs WordPress vietnes veiktspējas uzlabošanai nginx.com emuāru.
Lai to izmantotu, veiciet izmaiņas (piemēram, domēnu, ceļus, failu nosaukumus utt.), Lai atspoguļotu jūsu vidē esošo.
fastcgi_cache_path/var/run/NGINX-kešatmiņas līmeņi = 1: 2 key_zone = WORDPRESS: 100 m neaktīvs = 60 m; fastcgi_cache_key "$ schema $ request_method $ host $ request_uri"; serveris {servera_nosaukums.com.com www.example.com; root /var/www/example.com; indekss indekss.php; access_log /var/log/NGINX/example.com.access.log; error_log /var/log/NGINX/example.com.error.log; iestatīt $ skip_cache 0; # POST pieprasījumiem un vietrāžiem URL ar vaicājuma virkni vienmēr jābūt PHP, ja ($ request_method = POST) {set $ skip_cache 1; } ja ($ query_string! = "") {set $ skip_cache 1; } # Nelietojiet kešatmiņā URI, kas satur šādus segmentus, ja ($ request_uri ~* "/wp-admin/|/xmlrpc.php|wp-.*.php|/feed/|index.php | sitemap (_index)?. xml ") {set $ skip_cache 1; } # Nelietojiet kešatmiņu reģistrētiem lietotājiem vai neseniem komentētājiem, ja ($ http_cookie ~* "comment_author | wordpress_ [a-f0-9]+| wp-postpass | wordpress_no_cache | wordpress_logged_in") {set $ skip_cache 1; } location / {try_files $ uri $ uri / /index.php?$args; } atrašanās vieta ~ .php $ {try_files $ uri /index.php; iekļaut fastcgi_params; fastcgi_pass unix: /var/run/php5-fpm.sock; fastcgi_cache_bypass $ skip_cache; fastcgi_no_cache $ skip_cache; fastcgi_cache WORDPRESS; fastcgi_cache_valid 60m; } atrašanās vieta ~ /purge(/.*) {fastcgi_cache_purge WORDPRESS "$ schema $ request_method $ host $ 1"; } atrašanās vieta ~* ^.+. (ogg | ogv | svg | svgz | eot | otf | woff | mp4 | ttf | css | rss | atoms | js | jpg | jpeg | gif | png | ico | zip | tgz | gz | rar | bz2 | doc | xls | exe | ppt | tar | mid | midi | wav | bmp | rtf) $ {access_log off; log_not_found off; beidzas maksimālais derīguma termiņš; } location = /robots.txt {access_log off; log_not_found off; } atrašanās vieta ~ /. {noliegt visu; access_log off; log_not_found off; } }
NGINX atbalsta arī atbildes kešatmiņā no citiem starpniekserveriem (definēts ar starpniekserveris
direktīva). Šajā testa gadījumā mēs izmantojam NGINX kā apgrieztais starpniekserveris tīmekļa lietojumprogrammai Node.js, tāpēc mēs iespējosim NGINX kā lietojumprogrammas Node.js kešatmiņu. Visām šeit izmantotajām konfigurācijas direktīvām ir līdzīga nozīme kā FastCGI direktīvām iepriekšējā sadaļā, tāpēc mēs tās vairs nepaskaidrosim.
Lai iespējotu atbildes kešatmiņā no starpniekservera, iekļaujiet proxy_cache_path
direktīva augstākajā līmenī http {}
kontekstā. Lai norādītu, kā pieprasījumi tiek saglabāti kešatmiņā, varat pievienot arī proxy_cache_key
direktīvu šādi.
proxy_cache_path/var/cache/nginx app1 keys_zone = PROXYCACHE: 100 m neaktīvs = 60 m max_izmērs = 500 m; proxy_cache_key "$ schema $ request_method $ host $ request_uri"; add_header X-Cache-Status $ upstream_cache_status; proxy_cache_min_uses 3;
Pēc tam aktivizējiet kešatmiņu atrašanās vietas direktīvā.
atrašanās vieta / {proxy_pass http://127.0.0.1:3000; proxy_cache PROXYCACHE; proxy_cache_valid 200 302 10m; proxy_cache_valid 404 1m; }
Lai definētu nosacījumus, saskaņā ar kuriem NGINX nesūta kešatmiņā saglabāto saturu un vispār neizmanto atbildes kešatmiņā no augšupvērstā servera, iekļaujiet proxy_cache_bypass
un proxy_no_cache
.
proxy_cache_bypass $ cookie_nocache $ arg_nocache $ arg_comment; proxy_no_cache $ http_pragma $ http_authorization;
Tālāk sniegtās direktīvas ir noderīgas, lai precizētu starpniekservera kešatmiņas darbību. Tām ir arī tāda pati nozīme kā FastCGI direktīvām.
proxy_cache_min_uses 3; proxy_cache_revalidate on; proxy_cache_use_stale kļūdas noildze, atjauninot http_500; proxy_cache_background_update on; proxy_cache_lock ieslēgts;
Plašāku informāciju un kešatmiņas konfigurācijas direktīvas skatiet divu galveno moduļu dokumentācijā ngx_http_fastcgi_module un ngx_http_proxy_module.
Papildu resursi: NGINX satura kešatmiņa un Padomi WordPress veiktspējas uzlabošanai.