Andrei Chira

Blog personal

Hosting: Diferentele dintre webservere

Tehnic

Apache

Apache este cel mai popular webserver si majoritatea ofertelor de shared hosting ieftin sunt pe Apache.

Nu e cel mai popular pentru ca e cel mai bun ci pentru ca e cel mai vechi, e gratuit (open-source) si se instaleaza default cu cPanel.

Problema Apache apare la trafic mare, nefiind foarte scalabil, consuma din ce in ce mai multe resurse si poate ajunge sa blocheze tot serverul.

Asta e motivul pentru care atunci cand site-ul tau are succes primesti mesaj de la firma de hosting sa-ti spuna ca iti opresc site-ul si iti recomanda sa iei un VPS.

Problema e din constructia Apache, din felul cum gestioneaza conexiunile  (process-based). Apache creeaza un nou proces/thread pentru fiecare conexiune. Iar fiecare proces consuma memorie si CPU deci cu cat sunt mai multe cu atat e afectata performanta.

O solutie ar fi un reverse proxy in fata Apache (Nginx sau Varnish) care sa serveasca elementele statice (imagini, css, js, html) si la Apache sa ajunga doar requesturile php. Se consuma astfel mai putine resurse si serverul poate sa sustina mai mult trafic.

Foarte putine firme de hosting fac asta pentru ca:

  1. creste nivelul de complexitate al setup-ului
  2. daca merge prea bine toata lumea ia cel mai mic pachet de hosting si nu mai face upgrade in veci

Nota: Hostway, de exemplu, foloseste Apache + Nginx ca reverse proxy.

LiteSpeed

LiteSpeed este probabil cel mai bun webserver pentru hosting-ul shared. E cu 50% mai rapid decat Apache la procesarea scripturilor PHP si serveste cu pana la 600% mai rapid elementele statice. Consuma mai putine resurse decat Apache, poate sa sustina mai mult trafic, are protectie DDOS integrata si poate sa faca absolut tot ce face Apache dar mai bine.

Din pct meu de vedere, cea mai buna solutie pentru hosting-ul shared este un stack cu sistem de operare CloudLinux in loc de CentOS si webserver LiteSpeed in loc de Apache.

CloudLinux izoleaza complet clientii deci n-o sa ajunga niciun site sa consume prea multe resurse si sa blocheze serverul iar LiteSpeed ofera performanta mai buna si scalabilitate.

LiteSpeed, spre deosebire de Apache, nu e process-based ci event-driven adica serveste conexiunile cu mai putine procese, economisind resurse. E o metoda mai eficienta de a gestiona conexiunile si asta inseamna ca poate sustine trafic mai mare cu resurse mai putine.

Setup-ul asta are o singura problema, nu e gratuit ca CentOS + Apache. CloudLinux costa bani, LiteSpeed costa si el bani si rezulta un pret mare pentru pachetele de hosting.

Insa avantajele sunt clare: ai stabilitate, performanta si scalabilitate.

Nota: noi, la Simplenet, folosim acest setup.

Nginx

Nginx poate fi folosit si ca un webserver de sine statator, nu doar ca reverse proxy in fata Apache. Nu stie sa faca atatea lucruri ca Apache dar pe alea pe care le stie le face de 50 ori mai rapid.

Nginx nu are un modul PHP integrat deci trebuie sa comunice cu un server separat PHP, si anume PHP5-FPM.

PHP5-FPM suporta „adaptive process swamping” ceea ce inseamna ca la trafic scazut site-ul se va misca super rapid iar in cazul unui trafic masiv va incetini fara sa se blocheze.

Nginx este foarte scalabil (event-driven), poate sustine zeci de mii de conexiuni concurente (asta e si scopul pentru care a fost inventat) iar consumul de resurse este extrem de mic (si foarte previzibil).

Setup-ul Nginx/PHP5-FPM nu poate fi folosit pe un hosting shared insa e de departe cea mai buna solutie pentru un VPS cu memorie putina.

Setup-uri cu Nginx sunt folosite de site-uri cu trafic foarte mare: Facebook, Instagram, Netflix, WordPress.com, Zappos, Intel.com. CNN.com, eMAG.ro, GSP.ro.

Problema Nginx este ca nu e compatibil cu .htaccess si ca nu prea sunt panouri de control compatibile cu el.

Din pct meu de vedere astea nu sunt probleme mari, se pot scrie rewrite-uri care sa faca acelasi lucru pe care il fac regulile htaccess iar la panoul de control se poate renunta atat timp cat obiectivul tau e performanta nu joaca prin cPanel.

Astea sunt cele mai populare webservere folosite de firmele de hosting, daca vrei hosting shared ieftin solutia e o firma care are un setup standard cu CentOS + Apache, daca vrei stabilitate si performanta fara sa platesti multi bani pe un VPS atunci recomandarea e o firma care foloseste LiteSpeed + CloudLinux iar daca vrei ultra-performanta un VPS cu NGINX e varianta cea mai buna.

Pentru ultimele 2 variante exista Simplenet.

Nota: Ultima versiune de Apache (2.4) poate lucra in mod mpm_event si poate folosi PHP5-FPM iar daca se pune un Varnish in fata unui asemenea setup se poate ajunge la performante foarte apropiate de setup-ul Nginx/PHP5-FPM. Gandi.net, o firma de hosting din Franta, foloseste acest setup, l-am testat si e destul de bun.

4 răspunsuri

  1. Avatar Doru Ciobanu
    Doru Ciobanu

    In sfarsit explica cineva simplu si la obiect ce inseamna hostingul si cum merg lucrurile in lumea asta. M-am saturat si eu de „meseriasi” care nu tin cont decat de pret cand e vorba de hosting…

    Multumesc Andrei!!!

    1. Avatar Andrei Chira
      Andrei Chira

      Cu placere!

  2. Avatar Ariel Constantinof
    Ariel Constantinof

    chineză pentru mine. dar bine că am citit.

    1. Avatar Andrei Chira
      Andrei Chira

      :)

Lasă un răspuns

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