Ghidul Nginx Introducere

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.

Server proxy invers

Utilizarea unui proxy invers este foarte importantă deoarece ajută la:

  1. ascunzând existența și caracteristicile serverului original de origine
  2. distribuirea încărcăturii
  3. comprimarea și cache-ul conținutului
  4. efectuarea testelor A / B
  5. manipularea cererii / răspunsului
Sursa: Wikipedia

Server HTTP (vs. Apache)

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.

Arhitectură și Internă

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 Source

Nginx 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ă:

  1. Clientul trimite o cerere HTTP.
  2. Nginx core alege un handler de fază corespunzător bazat pe locația configurată care corespunde solicitării.
  3. Dacă este configurat să facă acest lucru, un balancer de sarcină alege un server din amonte pentru proxy.
  4. Operatorul de faze face misiunea și transmite fiecare tampon de ieșire către primul filtru.
  5. Primul filtru trece la ieșirea celui de-al doilea filtru.
  6. Cel de-al doilea filtru transmite rezultatul către a treia (și așa mai departe).
  7. Răspunsul final este trimis clientului.

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

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. 

nginx.conf

#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.  

Cod