Näme üçin Nginx-i Apache-den has gowy tapýaryn


Netcraft tarapyndan 2017-nji ýylyň ahyrynda (takyk noýabr aýynda) geçirilen iň soňky web serwer gözlegine görä, Apache we Nginx internetde iň köp ulanylýan açyk çeşme web serwerleridir.

Apache, Unix ýaly operasiýa ulgamlary we Windows üçin mugt, açyk çeşme HTTP serweridir. HTTP hyzmatlaryny bar bolan HTTP standartlary bilen sinhron üpjün edýän ygtybarly, täsirli we giňelýän serwer bolmak üçin döredildi.

Apache işe başlaly bäri 1996-njy ýyldan bäri internetde iň meşhur web serweri bolup durýar. Linux we açyk çeşme ekosistemasyndaky web serwerleri üçin de-fakto standart. Täze Linux ulanyjylary adatça gurmak we ulanmak has aňsat bolýar.

Nginx (“Motor-x” diýilýär) erkin, açyk çeşme, ýokary öndürijilikli HTTP serweri, ters proksi we IMAP/POP3 proksi serweri. Apache ýaly, Unix ýaly operasiýa ulgamlarynda we Windows-da işleýär.

Performanceokary öndürijiligi, durnuklylygy, ýönekeý konfigurasiýasy we serişde az sarp edilmegi bilen meşhurlyk gazanyp, ýyllar boýy meşhur boldy we internetde ulanylyşy has beýiklige çykýar. Indi tejribeli ulgam dolandyryjylarynyň ýa-da ýokary sahypalaryň web ussatlarynyň arasynda saýlama web serweri.

Işleýän köp sanly saýt:

  • Apache: PayPal, BBC.com, BBC.co.uk, SSLLABS.com, Apple.com we başga-da köp zatlar.
  • Nginx: Netflix, Udemy.com, Hulu, Pinterest, CloudFlare, WordPress.com, GitHub, SoundCloud we başgalar.

Apache bilen Nginx-iň arasyndaky deňeşdirme barada eýýäm internetde neşir edilen köp sanly çeşme bar (hakykatdanam 'Apache Vs Nginx' makalalaryny göz öňünde tutýaryn), köpüsi jikme-jik düşündirýär, dürli ssenariýlerdäki esasy aýratynlyklary we amallary, şol sanda laboratoriýa görkezijilerindäki ýerine ýetiriş çäreleri. . Şonuň üçin bu ýerde bu meselä seredilmez.

Indiki bölümde häzirki zaman web programmalaryny ýerleşdirmegiň talaplaryna esaslanýan önümçilik şertlerinde Apache we Nginx-i synap görenimde, ähli çekişmeler hakda öz pikirlerimi we pikirlerimi paýlaşaryn.

Nginx-i Apache-den has gowy tapmagymyň sebäpleri

Häzirki zaman web mazmunyny bermek üçin Nginx web serwerini Apache-den has gowy görmegimiň sebäpleri:

Nginx ol ýerdäki ýeňil agramly web serwerlerinden biridir. Apache bilen deňeşdirilende ulgamda kiçi aýak yzlary bar, bu programmany işletmek üçin zerur bolan köp funksiýany ýerine ýetirýär.

Nginx birnäçe esasy aýratynlyklary jemländigi sebäpli, Apache arkasy, FastCGI, Memcached, SCGI we uWSGI serwerleri ýa-da programma serweri, ýagny Node.js, Tomcat ýaly dil aýratyn serwerleri ýaly üçünji tarap ýokary akymly web serwerlerine bil baglaýar. we ş.m.

Şonuň üçin onuň ýadyny ulanmak Apache-den has çäkli çeşme ýerleşdirilmegi üçin has laýykdyr.

Apache-iň sapakly ýa-da prosese gönükdirilen arhitekturasyndan (baglanyşyk - başyna bir baglanyşyk ýa-da sapak - baglanyşyk modeli) tapawutlylykda, Nginx ulalýan, hadysalara esaslanýan (asynkron) arhitekturany ulanýar. Elýeterli enjam çeşmelerine laýyk gelýän jogapkärçilikli iş modelini ulanýar.

Onda baş prosesi bar (okamak konfigurasiýasy we portlar bilen baglanyşyk ýaly artykmaç amallary ýerine ýetirýär) we birnäçe işçi we kömekçi amallary döredýär.

Işçi amallary hersi bir wagtyň özünde müňlerçe HTTP birikmesini dolandyryp biler, mazmuny diske okap we ýazyp biler we ýokary akym serwerleri bilen aragatnaşyk gurup biler. Kömekçi amallar (keş keşi we keş keş ýükleýjisi) - disk mazmuny keş keş amallaryny dolandyryp biler.

Bu amallaryny ulaldýar we ýokary öndürijilige getirýär. Bu dizaýn çemeleşmesi, ony häzirki zaman amaly programmalary üçin çalt, amatly edýär. Mundan başga-da, Nginx-de ýerli funksiýalary giňeltmek üçin üçünji tarap modullary ulanylyp bilner.

Nginx, konfigurasiýany aňsatlaşdyrýan ýönekeý konfigurasiýa faýl gurluşyna eýe. Konfigurasiýa faýlynda görkezilen görkezmeler bilen dolandyrylýan modullardan durýar. Mundan başga-da, direktiwalar blok direktiwalaryna we ýönekeý görkezmelere bölünýär.

Blok görkezmesi ýaýlar ( { we } ) bilen kesgitlenýär. Blok direktiwasynyň içinde ýaýyň içinde başga görkezmeler bolup bilýän bolsa, hadysalar, http, serwer we ýerleşiş ýaly kontekst diýilýär.

http {
	server {
		
	}
}

Simpleönekeý görkezme boşluklar bilen bölünen at we parametrlerden ybarat bolup, nokatly (;) bilen gutarýar.

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

		}
		
	}
}

Mysal üçin, öz içine alýan direktiwany ulanyp, ýörite konfigurasiýa faýllaryny goşup bilersiňiz.

http {
	server {

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

Meniň üçin amaly mysal, dürli PHP wersiýalary bolan birnäçe web sahypasyny işletmek üçin Nginx-i aňsatlyk bilen düzüp bilendigim boldy, bu Apache bilen azajyk kyn boldy.

Nginx-iň umumy ulanylyşynyň biri ony proksi serwer hökmünde gurmakdyr, bu ýagdaýda müşderilerden HTTP haýyşlaryny alýar we ýokarda ady agzalan proksi ýa-da ýokarky protokollara, dürli protokollara iberýär. Şeýle hem, proksi serwere iberilýän müşderi haýyş sözbaşylaryny üýtgedip we proksi serwerlerden gelýän jogaplaryň buferini düzüp bilersiňiz.

Soňra proksi serwerlerden jogap alýar we müşderilere geçirýär. Apache bilen deňeşdirilende proksi serwer hökmünde düzmek has aňsat, sebäbi zerur modullar köplenç işledilýär.

Statik mazmun ýa-da faýllar, adatça serwer kompýuterinde diskde saklanýan faýllar, mysal üçin CSS faýllary, JavaScript faýllary ýa-da şekilleri. Geliň, Nginx-i Nodejs (programma serweri) üçin öň tarap hökmünde ulanýan bir ssenariýa seredeliň.

“Nodejs” serweri (esasanam “Node” çarçuwalary) statiki faýl işlemek üçin aýratynlyklara eýe bolsa-da, dinamiki däl mazmuny bermek üçin käbir intensiw işlemeli däl, şonuň üçin statiki mazmuna gönüden-göni hyzmat etmek üçin web serwerini düzmek peýdalydyr. Müşderiler.

Nginx, belli bir katalogdan statiki faýllary işlemekde has gowy iş edip biler we statiki aktiwlere islegleriň ýokarky serwer amallaryny basmagynyň öňüni alyp biler. Bu, arka serwerleriniň umumy işleýşini ep-esli gowulandyrýar.

Döwrebap web programmalary üçin ýokary öndürijiligi we iş wagtyny durmuşa geçirmek üçin bir ýa-da paýlanan HTTP serwerlerinde birnäçe amaly mysallary işledip bilersiňiz. Bu, öz gezeginde, HTTP serwerleriňiziň arasynda ýük paýlamak üçin ýük balansyny düzmek zerur bolup biler.

Häzirki wagtda ýük balansy operasiýa ulgamynyň çeşmelerini ulanmagy optimizirlemek, çeýeligi ýokarlandyrmak, gijä galmagy azaltmak, geçirijiligi ýokarlandyrmak, artykmaçlygy gazanmak we ýalňyşlyga çydamly konfigurasiýalary döretmek üçin giňden ulanylýan çemeleşmä öwrüldi.

Nginx aşakdaky ýük balans usullaryny ulanýar:

  • tegelek robin (deslapky usul) - ýokarky serwerlere islegler tegelek görnüşde paýlanýar (ýokarky howuzdaky serwerleriň sanawy boýunça).
  • iň az birikdirilen - bu ýerde indiki haýyş iň az işjeň birikme bilen serwere iberilýär.
  • ip-hash - bu ýerde indiki haýyş üçin haýsy müşderiniň saýlanmalydygyny kesgitlemek üçin hash-funksiýa ulanylýar (müşderiniň IP adresine esaslanýar).
  • Umumy hash - bu usul boýunça ulgam dolandyryjysy, berlen tekst, haýyşyň ýa-da iş wagtynyň üýtgeýänleri ýa-da olaryň kombinasiýasy bilen hash (ýa-da açar) kesgitleýär. Mysal üçin, açar çeşme IP we port ýa-da URI bolup biler. Soňra Nginx, häzirki haýyş üçin hash döredip, ýokarky serwerlere ýerleşdirip, ýükleri ýokary serwerleriň arasynda paýlaýar.
  • Iň az wagt (Nginx Plus) - iň az mukdarda häzirki baglanyşyk bilen ýokary akym serwerine indiki haýyşy belleýär, ýöne ortaça jogap wagty iň pes bolan serwerlere goldaw berýär.

Mundan başga-da, Nginx ýokary göwrümli we häzirki zaman web programmalary, esasanam kärhana programmalary ýokary öndürijiligi we göwrümliligi üpjün edýän tehnologiýa talap edýär.

“CloudFare” -niň esaslandyryjysy we baş direktory Mäti Şazadanyň sözlerine görä, “Nginx” -iň ajaýyp göwrümlilik aýratynlyklaryndan peýdalanýan bir kompaniýa “CloudFlare” bolup, her aýda 15 milliarddan gowrak sahypa görnüşini görmek üçin web programmalaryny giňeltmegi başardy.

Has giňişleýin düşündiriş üçin bu makalany Nginx blogynda gözden geçiriň: NGINX vs. Apache: On ýyllyk soraga biziň garaýşymyz.

Apache bilen Nginx-iň ikisini-de çalşyp bolmaz, güýçli we gowşak taraplary bar. Şeýle-de bolsa, Nginx häzirki zaman web sahypalaryny we web programmalaryny ygtybarly we täsirli güýçlendirmek üçin güýçli, çeýe, ulalýan we ygtybarly tehnologiýany hödürleýär. Näme alýarsyňyz? Aşakdaky seslenme formasy arkaly bize habar beriň.