Coerența și timpul de încărcare mai rapid au fost întotdeauna o provocare pentru orice site web cu trafic ridicat. Pentru a încărca mai rapid site-urile, browserele deschid mai multe conexiuni la un server web pentru a încărca conținut în paralel. Combinată cu conexiuni persistente, serverul web trebuie să fie într-adevăr robust și să poată fi scalat neliniar cu numărul de solicitări.
Devine foarte important ca site-ul să se bazeze pe un număr de blocuri de construcție cuplate dar extrem de coezive, iar nginx este într-adevăr o piesă importantă pentru a putea realiza acest lucru.
Nginx (motorul pronunțat x) este un server proxy HTTP și invers proxy, ușor, gratuit, deschis, precum și un server proxy de poștă electronică.
Nginx poate fi folosit ca înlocuitor complet pentru alte servere HTTP, cum ar fi Apache, sau poate de asemenea să stea în fața infrastructurii existente pe care o aveți, să lucrați ca un proxy invers.
Utilizarea unui proxy invers este foarte importantă deoarece ajută la:
Cum diferă nginx de Apache? Nginx este bazat pe evenimente și asincron, în timp ce Apache este în întregime dependent de fire. Pe un server web de trafic relativ ridicat, firele sunt obligate să-și epuizeze memoria. Un eveniment bazat pe un model asincron și non-blocant (de nginx) este un câștigător evident într-un astfel de caz.
Ea are un singur proces principal și mai multe procese "lucrătorilor" se desfășoară sub un utilizator neprivilat. În cadrul fiecărui lucrător, nginx poate ocupa câteva mii de conexiuni.
Sursa: Arhitectura aplicațiilor Open SourceNginx muncitor
codul include modulele de bază și modulele funcționale. Arhitectura modulară a lui Nginx vă permite să extindeți caracteristicile serverului web fără a modifica nucleul. Modulele de citire și scriere în rețea și stocare, transformarea conținutului, transmiterea cererilor către serverele de origine, includerea acțiunilor de la server și alte lucruri. Modulele constituie în primul rând nivelul de aplicație și funcționalitatea de prezentare.
Modulele Nginx vin în diferite forme: module de bază, module de evenimente, dispozitive de manipulare a fazelor, protocoale, dispozitive de manipulare variabile, filtre, console și balansoare de sarcină. În acest moment, nginx nu acceptă module încărcate dinamic, astfel încât modulele trebuie să fie compilate împreună cu nucleul în timpul construcției.
Nginx procesează conexiunile ca module conectate între ele, ca lanț. Pentru fiecare operație există un modul care face lucrarea relevantă, de ex. comprimarea, modificarea conținutului, execuția de pe partea de server include și comunicarea către serverele de aplicații din amonte. Un ciclu tipic de procesare a solicitărilor HTTP arată după cum urmează:
Această abordare stratificată și strâns legată, dar foarte coerentă, o face foarte bine la ceea ce face.
Descărcați și instalați
Configurația Nginx este localizată în fișiere text, de obicei la / Usr / local / etc / Nginx
sau / Etc / nginx
. Se numește fișierul de configurare principal nginx.conf
. Fișierul de configurare Nginx este în esență o listă de directive organizate într-o structură logică. Întregul comportament al aplicației este definit de valorile pe care le dați acestor directive.
#user nimeni; lucrări_procese 1; #error_log jurnale / error.log; #error_log jurnale / error.log; #error_log jurnale / error.log info; #loguri log / nginx.pid; evenimente worker_connections 1024; http ...
Deasupra, vedeți un mic extras dintr-un config nginx implicit (adnotat cu explicație). Întregul fișier poate fi de asemenea localizat la /usr/local/etc/nginx/nginx.conf.default
. Înțelegerea încearcă să explice în detaliu fiecare directivă.
Acest articol a prezentat ceea ce este nginx și rolul important pe care îl joacă pentru a face site-urile mai rapide. De asemenea, aceasta sa referit la directivele din dosarul de configurare. A doua parte a articolului va continua să explice și să dea câteva rețete pentru utilizarea nginx-ului în contexte diferite și, de asemenea, să vorbească despre modulele de utilizare nginx.