Ihe kpatara m ji chọta Nginx nke ọma karịa Apache


Dika nyocha ihe nkesa webụ kacha ọhụrụ sitere na Netcraft, nke emere na njedebe nke 2017, (kpọmkwem na Nọvemba), Apache na Nginx bụ sava weebụ mepere emepe nke ukwuu na ịntanetị.

Apache bụ ihe nkesa HTTP efu, mepere emepe maka sistemụ arụmọrụ Unix na Windows. Emebere ya ka ọ bụrụ ihe nkesa echekwara echekwabara, ọ dị mma yana extension nke na-enye ọrụ HTTP yana mmekọrịta ya na ụkpụrụ HTTP na-adị.

Kemgbe ewepụtara ya, Apache abụrụla sava weebụ kachasị ewu ewu na ịntanetị kemgbe 1996. Ọ bụ ọkọlọtọ de facto maka sava Weebụ na Linux na gburugburu ebe obibi mepere emepe. Ndị ọrụ Linux ọhụrụ na-adịkarị mfe ịtọlite na iji ya.

Nginx (akpọ 'Engine-x') bụ isi iyi mepere emepe, sava HTTP dị elu, proxy reverse, yana sava proxy IMAP/POP3. Dịka Apache, ọ na-arụkwa ọrụ na sistemụ arụmọrụ Unix na Windows.

A maara nke ọma maka ịrụ ọrụ dị elu, nkwụsi ike, nhazi dị mfe, na oriri ihe onwunwe dị ala, kemgbe ọtụtụ afọ na-ewu ewu na ojiji ya na Ịntanetị na-aga n'ihu dị elu. Ugbu a ọ bụ sava weebụ nke nhọrọ n'etiti ndị njikwa sistemu nwere ahụmahụ ma ọ bụ ndị isi webụ nke saịtị kachasị elu.

Ụfọdụ n'ime saịtị ndị ọrụ n'aka kwadoro site na:

  • Apache bụ: PayPal, BBC.com, BBC.co.uk, SSLLABS.com, Apple.com yana ọtụtụ ndị ọzọ.
  • Nginx bụ: Netflix, Udemy.com, Hulu, Pinterest, CloudFlare, WordPress.com, GitHub, SoundCloud na ọtụtụ ndị ọzọ.

Enwere ọtụtụ akụrụngwa ebipụtala na webụ gbasara ntụnyere dị n'etiti Apache na Nginx (m pụtara n'ezie akụkọ 'Apache Vs Nginx'), ọtụtụ n'ime ha na-akọwa n'ụzọ zuru ezu n'ụzọ zuru ezu, njiri mara ha na arụmọrụ ha n'okpuru ọnọdụ dị iche iche gụnyere usoro arụmọrụ na benchmarks lab. . Ya mere, a gaghị ekwupụta nke ahụ ebe a.

M ga-ekekọrịta ahụmịhe na echiche m banyere arụmụka ahụ dum, mgbe m nwalere Apache na Nginx, ma na gburugburu mmepụta ihe dabere na ihe achọrọ maka nnabata ngwa weebụ ọgbara ọhụrụ, na ngalaba na-esote.

Ihe kpatara m ji chọta Nginx nke ọma karịa Apache

Ihe ndị a bụ ihe mere m ji ahọrọ sava weebụ Nginx karịa Apache maka nnyefe ọdịnaya weebụ ọgbara ọhụrụ:

Nginx bụ otu n'ime sava weebụ dị arọ dị n'ebe ahụ. Ọ nwere obere akara ukwu na sistemụ ma e jiri ya tụnyere Apache nke na-arụ ọrụ dị ukwuu dị mkpa iji mee ngwa.

N'ihi na Nginx na-ejikọta ọnụ ọgụgụ dị nta nke isi njirimara, ọ na-adabere na sava weebụ raara onwe ya nye ndị ọzọ dị ka Apache backend, FastCGI, Memcached, SCGI, na uWSGI sava ma ọ bụ ngwa nkesa, ntụgharị asụsụ kpọmkwem sava dị ka Node.js, Tomcat. , wdg.

Ya mere ojiji ebe nchekwa ya kacha mma maka ntinye akụrụngwa nwere oke, karịa Apache.

N'adịghị ka Apache's threaded-ma ọ bụ nhazi nhazi usoro (usoro-njikọ ọ bụla ma ọ bụ eriri-kwa-njikọ ụdị), Nginx na-eji nhazi ihe nlegharị anya, ihe omume na-akwalite (synchronous). Ọ na-eji ụdị usoro ụgwọ ọrụ nke ahaziri na akụrụngwa ngwaike dị.

Ọ nwere usoro nna ukwu (nke na-arụ ọrụ ndị dị mkpa dị ka nhazi ọgụgụ na ijikọ na ọdụ ụgbọ mmiri) na nke na-emepụta ọtụtụ ndị ọrụ na usoro enyemaka.

Usoro onye ọrụ nwere ike ijikwa ọtụtụ puku njikọ HTTP n'otu oge, gụọ ma dee ọdịnaya na diski, wee soro sava dị elu kparịta ụka. Usoro inyeaka (onye njikwa cache na cache loader) nwere ike ijikwa ọrụ nchekwa ọdịnaya na diski.

Nke a na-eme ka ọrụ ya dị elu, na-eme ka arụ ọrụ dị elu. Usoro nhazi a na-eme ka ọ dị ngwa ngwa, dị mma maka ngwa ọgbara ọhụrụ. Na mgbakwunye, enwere ike iji modul ndị ọzọ gbatịa arụrụ ọrụ ala na Nginx.

Nginx nwere nhazi faịlụ nhazi dị mfe, na-eme ka ọ dị mfe ịhazi. Ọ nwere modul nke a na-achịkwa site na ntuziaka akọwapụtara na faịlụ nhazi. Na mgbakwunye, a na-ekewa ntuziaka ka ọ bụrụ ntuziaka mgbochi na ntuziaka dị mfe.

A na-akọwa ntuziaka mgbochi site na nkwado ({ na }). Ọ bụrụ na ntuziaka ngọngọ nwere ike ịnwe ntụzịaka ndị ọzọ n'ime nkwado nkwado, a na-akpọ ya okirikiri dịka mmemme, http, sava, na ọnọdụ.

http {
	server {
		
	}
}

Ntuziaka dị mfe nwere aha na parampat kewara site na oghere wee mechie na nkeji (;).

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

		}
		
	}
}

Ị nwere ike tinye faịlụ nhazi omenala site na iji ntuziaka gụnyere, dịka ọmụmaatụ.

http {
	server {

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

Otu ihe atụ bara uru nye m bụ ka m jisiri ike hazie Nginx ngwa ngwa ka ọ na-agba ọsọ ọtụtụ weebụsaịtị nwere ụdị PHP dị iche iche, nke bụ ntakịrị ihe ịma aka na Apache.

Otu n'ime ihe Nginx a na-ejikarị eme ihe na-edozi ya dị ka ihe nkesa proxy, na nke a ọ na-enweta arịrịọ HTTP sitere n'aka ndị ahịa wee nyefee ha na sava proxied ma ọ bụ elu nke ekwuru n'elu, n'elu usoro dị iche iche. Ị nwekwara ike gbanwee nkụnye eji isi mee arịrịọ ndị ahịa nke ezigara na sava proxied, wee hazie nzaghachi nzaghachi na-abịa site na sava proxied.

Mgbe ahụ ọ na-enweta nzaghachi site na proxied sava ma nyefee ya ndị ahịa. Ọ dị mfe ịhazi dị ka ihe nkesa proxy ma e jiri ya tụnyere Apache ebe ọ bụ na a na-enye modul achọrọ n'ọtụtụ ọnọdụ na ndabara.

Ọdịnaya ma ọ bụ faịlụ kwụ ọtọ bụ faịlụ echekwara na diski na kọmputa nkesa, dịka ọmụmaatụ faịlụ CSS , Faịlụ Javascript ma ọ bụ onyonyo. Ka anyị tụlee ihe atụ ebe ị na-eji Nginx dị ka frontend maka Nodejs (ihe nkesa ngwa).

Ọ bụ ezie na ihe nkesa Nodejs (kpọmkwem Node frameworks) arụwo ọrụ n'ime atụmatụ maka njikwa faịlụ static, ọ dịghị mkpa ka ha mee nhazi kpụ ọkụ n'ọnụ iji wepụta ọdịnaya na-adịghị ike, ya mere ọ bara uru ịhazi sava weebụ ka ọ na-eje ozi ozugbo. ndị ahịa.

Nginx nwere ike ịrụ ọrụ kachasị mma nke ijikwa faịlụ static site na ndekọ aha akọwapụtara, yana nwee ike igbochi arịrịọ maka akụ static site na ịkpagbu usoro sava dị elu. Nke a na-eme ka arụmọrụ nke sava azụ na-arụ ọrụ nke ọma.

Iji ghọta arụmọrụ dị elu yana oge maka ngwa weebụ ọgbara ọhụrụ nwere ike ịkpọ maka ịme ọtụtụ ngwa ngwa na otu sava HTTP ma ọ bụ kesaa. Nke a nwere ike n'aka nke mkpa maka ịtọzi nha maka ikesa ibu n'etiti sava HTTP gị.

Taa, nguzozi ibu abụrụla ụzọ a na-ejikarị eme ihe maka ịkwalite ojiji akụrụngwa akụrụngwa sistemụ arụmọrụ, na-eme ka mgbanwe dị ukwuu, belata latency, ịba ụba mmepụta, nweta ọrụ mgbapụta, na guzobe nhazi na-anabataghị mmejọ - gafee ọtụtụ ngwa ngwa.

Nginx na-eji usoro nhazi ibu ndị a:

  • round-robin (usoro ndabara) - A na-ekesa arịrịọ maka sava ndị dị n'elu n'ụdị ejiji okirikiri (usoro nke ndepụta sava dị na ọdọ mmiri mgbago).
  • njikọ kacha nta - ebe a arịrịọ na-esote bụ proxied na sava nke nwere ọnụ ọgụgụ kacha nta nke njikọ nọ n'ọrụ.
  • ip-hash – ebe a ka a na-eji ọrụ hash iji chọpụta ihe nkesa kwesịrị ịhọrọ maka arịrịọ na-esote (dabere na adreesị IP onye ahịa).
  • Generic hash - n'okpuru usoro a, onye na-ahụ maka sistemụ na-akọwapụta hash (ma ọ bụ igodo) yana ederede enyere, mgbanwe nke arịrịọ ma ọ bụ oge ojiri gaa, ma ọ bụ ngwakọta ha. Dịka ọmụmaatụ, igodo nwere ike ịbụ isi iyi IP na ọdụ ụgbọ mmiri, ma ọ bụ URI. Nginx wee kesaa ibu ahụ n'etiti sava ndị dị n'elu site n'ịmepụta hash maka arịrịọ dị ugbu a ma tinye ya megide sava ndị dị n'elu.
  • Oge kacha nta (Nginx Plus) - na-ekenye arịrịọ na-esote na ihe nkesa dị n'elu nwere ọnụ ọgụgụ kacha nta nke njikọ dị ugbu a mana ọ na-akwado sava ndị nwere oge nzaghachi kacha ala.

Ọzọkwa, Nginx bụ nke ukwuu scalable na ngwa webụ ọgbara ọhụrụ karịsịa ngwa ụlọ ọrụ na-achọ maka teknụzụ na-enye arụmọrụ dị elu na scalability.

Otu ụlọ ọrụ na-erite uru site na njirimara scalability nke Nginx dị ịtụnanya bụ CloudFlare, o jisiri ike mee ka ngwa weebụ ya dị elu iji jikwaa ihe karịrị 15 ijeri ihu peeji nke kwa ọnwa na akụrụngwa dịtụ ala, dị ka Matthew Prince, onye na-arụkọ ọrụ na CEO nke CloudFare.

Maka nkọwa zuru oke, lelee akụkọ a na blọọgụ Nginx: NGINX vs. Apache: Echiche Anyị nke Ajụjụ Ochie.

Ma Apache na Nginx enweghị ike dochie ibe ha, ha nwere isi ike ha na adịghị ike. Otú ọ dị, Nginx na-enye teknụzụ dị ike, na-agbanwe agbanwe, na-agbanwe agbanwe na nke echedoro maka ịkwado webụsaịtị na ngwa weebụ nke ọma na nke ọma. Kedu ihe ị chere? Mee ka anyị mara site n'ụdị nzaghachi n'okpuru.