Għaliex Insib Nginx Prattikament Aħjar Minn Apache


Skont l-aħħar stħarriġ tas-server tal-web minn Netcraft, li sar lejn l-aħħar tal-2017, (preċiżament f'Novembru), Apache u Nginx huma l-aktar servers tal-web sors miftuħ użati fuq l-Internet.

Apache huwa server HTTP b'xejn u open-source għal sistemi operattivi u Windows bħal Unix. Kien iddisinjat biex ikun server sigur, effiċjenti u estensibbli li jipprovdi servizzi HTTP sinkronizzati mal-istandards HTTP prevalenti.

Minn mindu tnieda, Apache kien l-aktar web server popolari fuq l-Internet minn 1996. Huwa l-istandard de facto għas-servers tal-Web fl-ekosistema Linux u open source. Utenti ġodda tal-Linux normalment isibuha aktar faċli biex iwaqqfu u jużaw.

Nginx (ippronunzjat 'Engine-x') huwa server HTTP b'xejn, open source, ta' prestazzjoni għolja, reverse proxy, u proxy server IMAP/POP3. Eżatt bħal Apache, jaħdem ukoll fuq sistemi operattivi bħal Unix u Windows.

Magħruf sew għall-prestazzjoni għolja tiegħu, l-istabbiltà, il-konfigurazzjoni sempliċi u l-konsum baxx ta’ riżorsi, matul is-snin sar tant popolari u l-użu tiegħu fuq l-Internet sejjer lejn għoli akbar. Issa huwa s-server tal-web tal-għażla fost amministraturi tas-sistema b'esperjenza jew kaptani tal-web tal-aqwa siti.

Uħud mis-siti okkupati mħaddma minn:

  • Apache huma: PayPal, BBC.com, BBC.co.uk, SSLLABS.com, Apple.com flimkien ma' ħafna aktar.
  • Nginx huma: Netflix, Udemy.com, Hulu, Pinterest, CloudFlare, WordPress.com, GitHub, SoundCloud u ħafna oħrajn.

Hemm bosta riżorsi diġà ppubblikati fuq il-web dwar it-tqabbil bejn Apache u Nginx (verament infisser artikoli 'Apache Vs Nginx'), li ħafna minnhom jispjegaw b'mod ċar fid-dettall, il-karatteristiċi ewlenin tagħhom u l-operazzjonijiet taħt diversi xenarji inklużi miżuri ta' prestazzjoni f'benchmarks tal-laboratorju . Għalhekk dan mhux se jiġi indirizzat hawn.

Sempliċement se naqsam l-esperjenza u l-ħsibijiet tiegħi dwar id-dibattitu kollu, wara li ppruvajt Apache u Nginx, it-tnejn f'ambjenti ta 'produzzjoni bbażati fuq rekwiżiti għall-ospitar ta' applikazzjonijiet moderni tal-web, fit-taqsima li jmiss.

Raġunijiet Għaliex Insib Nginx Prattikament Aħjar Minn Apache

Dawn li ġejjin huma r-raġunijiet għaliex nippreferi Nginx web server fuq Apache għall-kunsinna ta 'kontenut tal-web modern:

Nginx huwa wieħed mis-servers tal-web ta 'piż ħafif hemmhekk. Għandu footprints żgħar fuq sistema meta mqabbla ma 'Apache li timplimenta ambitu vast ta' funzjonalità meħtieġa biex titħaddem applikazzjoni.

Minħabba li Nginx tgħaqqad numru żgħir ta’ karatteristiċi ewlenin, tiddependi fuq servers tal-web upstream dedikati ta’ partijiet terzi bħal backend Apache, FastCGI, Memcached, SCGI, u servers uWSGI jew server ta’ applikazzjoni, jiġifieri servers speċifiċi għal lingwa bħal Node.js, Tomcat , eċċ.

Għalhekk l-użu tal-memorja tiegħu huwa ferm aħjar adattat għal skjeramenti ta 'riżorsi limitati, minn Apache.

Għall-kuntrarju tal-arkitettura orjentata lejn il-kamin jew il-proċess ta 'Apache (mudell ta' proċess għal kull konnessjoni jew ħajt għal kull konnessjoni), Nginx juża arkitettura skalabbli, mmexxija mill-avvenimenti (asinkronika). Hija timpjega mudell ta 'proċess responsabbli li huwa mfassal għar-riżorsi tal-hardware disponibbli.

Għandu proċess ewlieni (li jwettaq l-operazzjonijiet privileġġjati bħall-konfigurazzjoni tal-qari u l-irbit mal-portijiet) u li joħloq diversi proċessi ta 'ħaddiem u helper.

Il-proċessi tal-ħaddiema jistgħu kull wieħed jimmaniġġjaw eluf ta 'konnessjonijiet HTTP simultanjament, jaqraw u jiktbu kontenut fuq disk, u jikkomunikaw ma' servers upstream. Il-proċessi helper (cache manager u cache loader) jistgħu jimmaniġġjaw operazzjonijiet ta' caching tal-kontenut fuq id-disk.

Dan jagħmel l-operazzjonijiet tiegħu skalabbli, u jirriżulta fi prestazzjoni għolja. Dan l-approċċ tad-disinn aktar jagħmilha veloċi, favorevoli għall-applikazzjonijiet moderni. Barra minn hekk, moduli ta 'partijiet terzi jistgħu jintużaw biex jestendu l-funzjonalitajiet nattivi f'Nginx.

Nginx għandu struttura sempliċi tal-fajl tal-konfigurazzjoni, li jagħmilha super faċli biex tiġi kkonfigurata. Tikkonsisti f'moduli li huma kkontrollati minn direttivi speċifikati fil-fajl tal-konfigurazzjoni. Barra minn hekk, id-direttivi huma maqsuma f'direttivi blokk u direttivi sempliċi.

Direttiva tal-blokk hija definita minn ċingi ({ u }). Jekk direttiva ta 'blokk jista' jkollha direttivi oħra ġewwa ċingi, tissejjaħ kuntest bħal avvenimenti, http, server, u post.

http {
	server {
		
	}
}

Direttiva sempliċi tikkonsisti fl-isem u l-parametri separati bi spazji u tispiċċa b'punt virgola (;).

http {
	server {
		location / {
				
				## this is simple directive called root
			   	root  /var/www/hmtl/example.com/;

		}
		
	}
}

Tista' tinkludi fajls ta' konfigurazzjoni tad-dwana billi tuża d-direttiva ta' inklużjoni, pereżempju.

http {
	server {

	}
	## examples of including additional config files
	include  /path/to/config/file/*.conf;
	include  /path/to/config/file/ssl.conf;
}

Eżempju prattiku għalija kien kif irnexxieli nikkonfigura faċilment Nginx biex imexxi websajts multipli b'verżjonijiet differenti ta 'PHP, li kienet xi ftit ta' sfida ma 'Apache.

Wieħed mill-użi komuni ta 'Nginx huwa li jistabbilixxih bħala server proxy, f'dan il-każ jirċievi talbiet HTTP mill-klijenti u jgħaddihom lil servers proxy jew upstream li ssemmew hawn fuq, fuq protokolli differenti. Tista 'wkoll timmodifika l-intestaturi tat-talbiet tal-klijenti li jintbagħtu lis-server prokurat, u tikkonfigura l-buffering tat-tweġibiet li ġejjin mis-servers proxy.

Imbagħad jirċievi tweġibiet mis-servers prokurati u jgħaddihom lill-klijenti. Huwa aktar faċli li jiġi kkonfigurat bħala proxy server meta mqabbel ma 'Apache peress li l-moduli meħtieġa fil-biċċa l-kbira tal-każijiet huma attivati awtomatikament.

Kontenut statiku jew fajls huma tipikament fajls maħżuna fuq disk fuq il-kompjuter server, pereżempju fajls CSS , fajls JavaScripts jew immaġini. Ejja nikkunsidraw xenarju fejn tuża Nginx bħala frontend għal Nodejs (is-server tal-applikazzjoni).

Għalkemm is-server Nodejs (speċifikament l-oqfsa Node) bnew karatteristiċi għall-immaniġġjar tal-fajl statiku, m'għandhomx għalfejn jagħmlu xi proċessar intensiv biex iwasslu kontenut mhux dinamiku, għalhekk huwa prattikament ta 'benefiċċju li jiġi kkonfigurat is-server tal-web biex iservi kontenut statiku direttament lil klijenti.

Nginx jista 'jwettaq biċċa xogħol ferm aħjar biex jimmaniġġja fajls statiċi minn direttorju speċifiku, u jista' jipprevjeni talbiet għal assi statiċi milli jifgaw proċessi tas-server upstream. Dan itejjeb b'mod sinifikanti l-prestazzjoni ġenerali tas-servers backend.

Biex tirrealizza prestazzjoni għolja u uptime għal applikazzjonijiet tal-web moderni jista 'jsejjaħ għat-tħaddim ta' istanzi multipli ta 'applikazzjoni fuq servers HTTP wieħed jew distribwiti. Min-naħa tiegħu, dan jista' jeħtieġ li jiġi stabbilit ibbilanċjar tat-tagħbija biex jitqassam it-tagħbija bejn is-servers HTTP tiegħek.

Illum, l-ibbilanċjar tat-tagħbija sar approċċ użat ħafna għall-ottimizzazzjoni tal-utilizzazzjoni tar-riżorsi tas-sistema operattiva, il-massimizzazzjoni tal-flessibbiltà, it-tnaqqis tal-latenza, iż-żieda fil-produzzjoni, il-kisba ta 'redundancy, u l-istabbiliment ta' konfigurazzjonijiet tolleranti għall-ħsarat - f'każijiet multipli ta 'applikazzjoni.

Nginx juża l-metodi ta 'ibbilanċjar tat-tagħbija li ġejjin:

  • round-robin (metodu default) – talbiet lis-servers upstream jitqassmu b'mod round-robin (f'ordni tal-lista ta' servers fil-pool upstream).
  • l-inqas konnessi – hawn it-talba li jmiss hija mogħtija lis-server bl-inqas numru ta' konnessjonijiet attivi.
  • ip-hash – hawnhekk tintuża funzjoni hash biex tiddetermina liema server għandu jintgħażel għat-talba li jmiss (ibbażat fuq l-indirizz IP tal-klijent).
  • Hash ġeneriku – taħt dan il-metodu, l-amministratur tas-sistema jispeċifika hash (jew ċavetta) bit-test mogħti, varjabbli tat-talba jew runtime, jew il-kombinazzjoni tagħhom. Pereżempju, iċ-ċavetta tista' tkun IP sors u port, jew URI. Nginx imbagħad iqassam it-tagħbija fost is-servers upstream billi jiġġenera hash għat-talba attwali u jpoġġiha kontra s-servers upstream.
  • L-inqas ħin (Nginx Plus) – jassenja t-talba li jmiss lis-server upstream bl-inqas numru ta' konnessjonijiet kurrenti iżda jiffavorixxi s-servers bl-inqas ħinijiet medji ta' rispons.

Barra minn hekk, Nginx huwa skalabbli ħafna u applikazzjonijiet tal-web moderni speċjalment applikazzjonijiet ta 'intrapriżi domanda għal teknoloġija li tipprovdi prestazzjoni għolja u skalabbiltà.

Kumpanija waħda li tibbenefika mill-karatteristiċi tal-iskalabbiltà tal-għaġeb ta 'Nginx hija CloudFlare, irnexxielha tiskala l-applikazzjonijiet tal-web tagħha biex timmaniġġja aktar minn 15-il biljun opinjoni ta' paġna ta 'kull xahar b'infrastruttura relattivament modesta, skond Matthew Prince, ko-fundatur u CEO ta' CloudFare.

Għal spjegazzjoni aktar komprensiva, iċċekkja dan l-artikolu fuq il-blog ta 'Nginx: NGINX vs Apache: Il-ħarsa tagħna ta' Mistoqsija ta' Għaxar snin.

Kemm Apache kif ukoll Nginx ma jistgħux jiġu sostitwiti minn xulxin, għandhom il-punti b'saħħithom u dgħajfa tagħhom. Madankollu, Nginx joffri teknoloġija qawwija, flessibbli, skalabbli u sigura biex tħaddem b'mod affidabbli u effiċjenti websajts u applikazzjonijiet tal-web moderni. X'inhi t-teħid tiegħek? Għidilna permezz tal-formola ta' feedback hawn taħt.