NGINX server jedan je od popularnijih, i svakodnevno zauzima sve veći udio u web serverskoj tehnologiji. Ovom prilikom ćemo objasniti što je NGINX, kako radi i koje su prednosti i nedostatci ovog softvera.
Prije nego nastavimo, NGINX se teško izgovara, pa ćemo spomenuti da se izgovara kao „Engine-Ex“. Riječ je o Open Source projektu, odnosno web serveru koji je kasnije nadograđen da preuzme dodatne dužnosti.
NGINX se pokazao kao jako dobar web server, a danas se koristi i kao Reverse Proxy, HTTP Cache, i Load Balancer. Nećemo prevoditi svaki pojam, sa pretpostavkom da ste upoznati sa terminologijom, ili osnovnim IT pojmovima na engleskom jeziku.
Tko sve koristi NGINX?
Danas ovaj server koriste mnogi, pa među njima i globalno poznate kompanije kao što su: Autodesk, T-Mobile, GitLab, DuckDuckGo, Microsoft, IBM, Google, Adobe, Xerox, LinkedIn, Cisco, Facebook, Citrix Systems, Twitter, Apple, Inter, i mnoge druge kompanije jakih profila.
Kako je nastao NGINX?
Začetnik ovog web servera je Igor Sysoev, koji je prvi put predstavio svoj projekt 2004.g. Inicijalno je radio na otklanjanju C10k problema, odnosno poznatog problema sa 10.000 trenutnih konekcija prema web stranici. S tim ciljem, NGINX je postao bolja solucija za mnoge web stranice koje imaju ostvaren promet u skali koju smo spomenuli.
Kako radi NGINX?
NGINX web majstorima nudi mnogo manje zauzeće radne memorije na serveru. Umjesto da za svaku konekciju pokreće novi proces, NGINX koristi asinkroni pristup, gdje se zahtjev za konekciju ostvaruje u jednoj niti.
Sa NGINX logikom, jedan glavni proces upravlja sa više radnih procesa. Glavni proces održava ostale procese. Asinkroni pristup daje bolje rezultate, i više konekcija neće blokirati zahtjeve međusobno ili sa drugim zahtjevima za novu konekciju.
Poznate mogućnosti NGINX servera su:
- Reverse proxy sa caching mehanizmom
- IPv6 standard
- Load balancing
- FastCGI podrška sa keširanjem
- WebSockets
- Upravljanje statičnim datotekama, automatsko indeksiranje
- TLS/SSL sa SNI modulom
Usporedba NGINX sa Apache serverom
Pored NGINX servera, imamo i Apache web server, koji je i najpopularniji trenutno u svijetu. Nećemo kazati da je definitivno najbolji, ali je među prvima izašao, besplatan je, i ima najveći broj poklonika koji svoje web stranice objavljuju baš uz pomoć Apache servera.
Trebamo spomenuti da je NGINX najpopularniji među vlasnicima stranica koje imaju veliki promet. Kako smo već kazali, u slučaju velikog broja konekcija, NGINX je svakako bolji izbor. NGINX server pokreće Netflix servise, NASA, pa i WordPress.com platformu za blogere.
NGINX također koristi svu temeljnu snagu modernih operativnih sustava poput Linuxa za optimizaciju upotrebe memorije, CPU-a i mreže te izvlačenje maksimalne izvedbe iz fizičkog ili virtualnog servera. Konačni rezultat je da NGINX često može poslužiti barem 10 puta više (a često i od 100 do 1000 puta više) zahtjeva u usporedbi s Apacheom. To znači više povezanih korisnika po serveru, bolju iskorištenost propusnosti, manju potrošnju CPU-a i RAM-a te pozitivniji utjecaj na okoliš.
NGINX kao web server
Cilj korištenja NGINX web servera je postići što brži web server za veći broj korisnika. Apache po nekim usporedbama zaostaje, i evidentno je da NGINX ima bolje rezultate. Osim toga, NGINX ima neke druge prednosti, kao što su komponente bez kojih moderni web jednostavno nemože, a to su:
- Podrška za WebSocket
- HTTP/2
- gRPC
- I streaming višestrukih video formata kao što su (HDS, HLS, RTMP i drugi)
Par riječi za kraj
NGINX server je, uz Apache, najpoznatiji web server. Često se koristi na serverima koji bilježe veliki broj konekcija, gdje zapravo radi i balansira bolje od spomenutog Apache servera.
NGINX je lagan i jako brz web server. Dobro je dokumentiran i relativno se lako podesi i stavlja u rad. Pored toga što ubrzava konekcije prema klijentima, NGINX zauzima mnogo manje prostora na samom fizičkom serveru. Točnije, zauzima manje radne memorije (RAM).