Home » Articole » Știri » Maparea şi încărcarea serverelor web

Maparea şi încărcarea serverelor web

postat în: Știri 0

LAMP_software_bundle.svg

Translatarea căii

Serverele web sunt capabili sa mapeze o componentă de traseu a Uniform Resource Locator (URL) în:

  • O resursă locală a sistemului de fișiere (pentru cererile statice)
  • Un nume de program intern sau extern (pentru cererile dinamice)

Pentru o solicitare statică calea URL specificată de către client este relativă la directorul rădăcină al serverului web.

Luați în considerare următorul URL aşa cum ar fi solicitat de către un client:

http://www.exemplu.ro/cale/fisier.html

Agentul utilizator al clientului va translata într-o conexiune la www.example.com cu următoarea colicitare HTTP 1.1:

GET /path/file.html HTTP/1.1
Host: www.exemplu.ro

Serverul web pe www.exemplu.ro va adăuga calea dat de calea la directorul rădăcină. Pe un server Apache, aceasta este de obicei /home/www (pe mașinile Unix, de obicei /var/www). Rezultatul este resursa sistemului de fișiere locale:

/home/www/cale/fisier.html

Serverul web apoi citește fișierul, dacă acesta există, și trimite un răspuns la browser-ul clientului. Răspunsul va descrie conținutul fişierului și va conține fișierul în sine sau un mesaj de eroare spunând că fişierul nu există sau nu este disponibil.

Servere web în mod kernel şi utilizator

Un server web poate fi fie implementat în kernel-ul sistemului de operare, sau în spațiul utilizator (ca şi alte aplicații obișnuite).

Un server în kernel (cum ar fi Microsoft IIS pe Windows sau TUX pe GNU/Linux), va lucra de obicei mai repede, deoarece, ca parte a sistemului, poate folosi direct toate resursele hardware de care are nevoie, cum ar fi memoria non-paginată, CPU, adaptoare de rețea, sau buffere.

Servere web care rulează în mod utilizator trebuie să ceară sistemului permisiunea de a utiliza mai multă memorie sau mai multe resurse CPU. Nu numai că aceste cereri la kernelau nevoie de timp, dar ele nu sunt întotdeauna satisfăcute, deoarece sistemul rezervă resursele pentru propria utilizare, și are responsabilitatea de a partaja resursele hardware cu toate celelalte aplicații care rulează. Executarea în mod utilizator poate însemna, de asemenea, copii buffer inutile, care sunt un alt handicap pentru serverele web în mod utilizator.

Limite de sarcină

Un server web (program) are definite limitele de încărcare, pentru că poate administra doar un număr limitat de conexiuni de client concurente (de obicei, între 2 și 80.000, implicit între 500 și 1000) pe adresa de IP (și portul TCP), și poate servi doar un anumit număr maxim de cereri pe secundă în funcție de:

  • propriile setări,
  • tipul de cerere HTTP,
  • dacă conținutul este static sau dinamic,
  • dacă conținutul este în cache, și
  • limitările hardware și software ale sistemului de operare al calculatorului pe care ruleaza serverul web.

Când un server web este aproape de sau peste limita sa, acesta nu mai răspunde.

Cauzele suprasarcinii

În orice moment, servere de web poate fi supraîncărcate din cauza:

  • Prea mult trafic web legitim. Mii sau chiar milioane de clienți care se conectează la site într-un interval scurt; de exemplu, efectul Slashdot;
  • Atacuri Distributed Denial of Service. Un atac de tip denial-of-service (DoS) sau denial-of-service distribuit (DDoS) este o încercare de a face un computer sau o rețea de resurse nedisponibile pentru utilizatorii săi;
  • Viermi informatici, care, uneori, duc la trafic anormal din cauza a milioane de calculatoare infectate (necoordonate între ele);
  • Viruşii XSS pot provoca trafic ridicat, din cauza milioanelor de browsere infectate și/sau servere web;
  • Boturi Internet. Traficul nefiltrat/nelimitat pe site-uri web mari, cu foarte puține resurse (de lățime de bandă, etc);
  • Încetiniri Internet (reţea), astfel încât cererile clientului sunt servite mai lent și numărul de conexiuni crește atât de mult că se ajunge la limitele de server;
  • Servere Web (calculatoare) cu indisponibilitate parțială. Acest lucru se poate întâmpla din cauza lucrărilor de întreținere necesare sau urgente, picări de hardware şi software, probleme în partea de administrare (de exemplu, baze de date), etc. În aceste cazuri, serverele web rămase au prea mult trafic și devin supraîncărcate.

Simptomele de suprasarcină

Simptomele unui server de web supraîncărcat sunt:

  • Cererile sunt servite cu întârzieri (eventual lungi) (de la 1 secundă la câteva sute de secunde).
  • Serverul web returnează un cod de eroare HTTP, cum ar fi 500, 502, 503, 504, 408, sau chiar 404, care este nepotrivit pentru o condiție de suprasarcină.
  • Serverul web refuză sau restează (întrerupe) conexiuni TCP înainte de a întoarce orice conținut.
  • În cazuri foarte rare, serverul web întoarce doar o parte din conținutul solicitat. Acest comportament poate fi considerat o eroare, chiar dacă, de obicei, apare ca un simptom de suprasarcină.

Tehnici de protecţie la suprasarcină

Pentru a depăși parțial limitele de încărcare medie și pentru a preveni suprasarcina, site-urile web cele mai populare utilizează tehnici comune cum ar fi:

  • Gestionarea traficului în rețea, prin utilizarea de:
    • Firewall pentru a bloca traficul nedorit provenind din surse IP rele sau cu modele rele
    • Manageri de trafic HTTP pentru a stopa, redirecționa sau rescrie cereri având modele HTTP rele
    • Gestionarea lățimii de bandă și modelarea traficului, pentru a netezi vârfurile negative din utilizarea rețelei
  • Implementarea tehnicilor de cache
  • Folosirea diferitelor nume de domenii pentru a servi conținut diferit (static și dinamic) prin servere web separate, și anume:
    • http://imagini.exemplu.ro
      http://www.exemplu.ro
  • Folosind diferite nume de domenii și/sau calculatoare pentru a separa fişiere mari de fișiere mici și mijlocii; ideea este de a putea folosi cache pentru fișiere de dimensiuni mici și mijlocii, și pentru a servi mai eficient fişiere mari şi foarte mari (mai mult de 10-1000 MB) folosind diferite setări
  • Folosind mai multe servere web (programe) pe calculator, fiecare legat de propriul card de rețea și adresă IP
  • Folosind mai multe servere web (calculatoare) care sunt grupate împreună în spatele unui echilibror de sarcină, astfel încât acestea să acționeze sau să fie văzute ca un server web mare
  • Adăugarea de mai multe resurse hardware (de exemplu, RAM, discuri) pentru fiecare calculator
  • Tunarea parametrilor SO pentru capacitățile hardware
  • Folosind programe de calculator mai eficiente pentru servere web, etc
  • Utilizarea altor soluții, în special în cazul în care conținutul dinamic este implicat

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *