Blog

Što je Nginx i kako radi?

Nginx (izgovara se “engine-ex”) je open-source web server koji se, nakon inicijalnog uspjeha kao web server, u zadnje vrijeme koristi i kao reverse proxy, HTTP cache te load balancer. Neke poznate kompanije koje koriste Nginx su Autodesk, Atlassian, T-Mobile, Microsoft, IBM, Google, Adobe, Salesforce, vmWare, LinkedIn, Cisco, Facebook, Citrix, Twitter, Apple, Intel, te mnoge druge.

Nginx je kreirao Rus Igor Sysoev a objavljen je 2004. godine. U početku je softver zamišljen kao odgovor na C10k problem, a to je problem sa performansama kod procesiranja 10,000 istovremenih konekcija. Budući da su njegovi korijeni u optimizaciji performansi pod opterećenjem, Nginx često nadmašuje ostale popularne web poslužitelje u benchmark testovima, posebno u situacijama sa statičkim sadržajem i / ili visokim konkurentnim zahtjevima, zbog čega mnogi MSP-ovi koriste Nginx za svoje Cloud usluge ili hosting.

Kako Nginx radi?

Nginx je dizajniran za malu potrošnju memorije i visoku konkurentnost (concurrency) konekcija. Umjesto da kreira nove procese za svaki web request, Nginx koristi asinhroni, event-driven pristup gdje se zahtjevi obrađuju u jednom thread-u. Sa Nginx-om, jedan master proces može kontrolirati više worker procesa. Master održava worker procese a workeri rade stvarno procesiranje. Pošto je Nginx asinhron, svaki zahtjev biti će izvršen od strane workera istovremeno, bez da blokira ostale zahtjeve.

Neke uobičajene funkcionalnosti Nginx-a:

  • Reverse proxy sa caching-om
  • IPv6
  • Load balancing
  • FastCGI podrška sa caching-om
  • WebSockets
  • Rad sa statičkim i indeksnim datotekama te auto-indeksiranje
  • TLS/SSLsa SNI

Nginx i Apache statistika korištenja

Apache je drugi popularni open-source web server. Ako pogledamo brojke, Apache je najpopularniji web server, krajem prošle godine koristilo ga je 43.6% (pad sa 47% u 2018.) svih website-ova sa poznatim web serverom (izvor: W3Techs). Nginx je zamalo drugi sa 41.8%.

Netcraft je proveo istraživanje na 233 milijuna domena i otkrio je da je Apache korišten kod 31.54% a Nginx kod 26.20% domena.

Slika 1: market share domena

Premda je Apache najpopularnija opcija, Nginx je u stvari najpopularniji web server kod website-ova sa velikim prometom.

Kad razložimo stope korištenja po prometu, Nginx pogoni:

  • 60,9% od 100,000 najpopularnijih sajtova (rast sa 56.1% u 2018.)
  • 67,1% od 10,000 najpopularnijih sajtova (rast sa 63.2% u 2018.)
  • 62,1% od 1,000 najpopularnijih sajtova (rast sa 57% u 2018.)

U stvari, Nginx koriste neki od postojećih sajtova sa najviše prometa, uključujući Netflix, NASA, pa čak i Facebook.

S druge strane, korištenje Apache servera je upravo suprotno popularnosti web sajtova. Apache pokreće:

  • 24,0% od 100,000 najpopularnijih sajtova (pad sa 27.1% u 2018.)
  • 18,8% od 10,000 najpopularnijih sajtova (pad sa 21.5% u 2018.)
  • 16,6% od 1,000 najpopularnijih sajtova (pad sa 16.2%  u 2018.)

Ako pogledamo Google Search pojmove od 2004. godine, možemo vidjeti da je Apache u stalnom padu, dok NGINX ima blagi rast.

 

Slika 2: Usporedba Nginx i Apache

Ako uzmemo u obzir da NGINX bolje radi pod opterećenjem, nije iznenađenje da najprometniji web sajtovi koriste NGINX umjesto Apache servera.

Kako provjeriti da li koristite Nginx ili Apache?

Na većini website-ova možete jednostavno pogledati server HTTP header da li piše Nginx ili Apache. HTTP headere možete provjeriti  tako da pokrenete network tab u Chrome Devtools-u ili alatima kao što su Pingdom ili GTmetrix.

No, HTTP headeri možda neće uvijek otkriti koji je web server u igri. Ako je vaš WordPress sajt recimo iza proxy servisa kao što je Cloudflare, server HTTP header će pokazati na cloudflare.

 

Slika 3: Nginx HTTP Header

F5 Networks, Inc. je tvrtka koja stoji iza popularnog Open source projekta NGINX. Nginx nudi paket tehnologija za razvoj i isporuku modernih aplikacija. Kombinirana F5 i Nginx rješenja premošćuju jaz između NetOps-a i DevOps-a, s multi-cloud aplikativnim servisima koji pokrivaju sve od koda do kupca (from Code to Customer). Više informacija na https://www.nginx.com

Treba Vam ponuda ili pomoć pri izradi rješenja? Tražite partnera za implementaciju?

Kontaktirajte nas!