Kilode ti Mo Wa Nginx Ni iṣe Dara ju Apache


Gẹgẹbi iwadi olupin wẹẹbu tuntun nipasẹ Netcraft, eyiti a ṣe ni opin ọdun 2017, (ni deede ni Oṣu kọkanla), Apache ati Nginx jẹ awọn olupin ayelujara ṣiṣi orisun ṣiṣapẹrẹ ti o gbooro julọ lori Intanẹẹti.

Apache jẹ ọfẹ, olupin ṣiṣi HTTP fun awọn ẹrọ ṣiṣe bii Unix ati Windows. A ṣe apẹrẹ lati jẹ olupin ti o ni aabo, daradara ati extensible ti o pese awọn iṣẹ HTTP ni mimuṣiṣẹpọ pẹlu awọn iṣedede HTTP ti n bori.

Lailai lati ibẹrẹ rẹ, Apache ti jẹ olupin wẹẹbu ti o gbajumọ julọ lori Intanẹẹti lati ọdun 1996. O jẹ bošewa de facto fun awọn olupin Wẹẹbu ni Linux ati ilolupo orisun orisun. Awọn olumulo Lainos tuntun wa deede rọrun lati ṣeto ati lilo.

Nginx (ti a pe ni 'Engine-x') jẹ ọfẹ, orisun ṣiṣi, olupin HTTP iṣẹ giga, aṣoju aṣoju, ati olupin aṣoju IMAP/POP3. Gẹgẹ bi Apache, o tun n ṣiṣẹ lori awọn ẹrọ ṣiṣe bii Unix ati Windows.

Daradara mọ fun iṣẹ giga rẹ, iduroṣinṣin, iṣeto ni irọrun, ati agbara awọn olu resourceewadi kekere, o ti kọja awọn ọdun di olokiki ati lilo rẹ lori Intanẹẹti nlọ si awọn giga giga. O jẹ bayi olupin ayelujara ti o fẹ laarin awọn alakoso eto iriri tabi awọn oluwa wẹẹbu ti awọn aaye oke.

Diẹ ninu awọn aaye ti o nšišẹ ti agbara nipasẹ:

  • Apache ni: PayPal, BBC.com, BBC.co.uk, SSLLABS.com, Apple.com pẹlu ọpọlọpọ diẹ sii.
  • Nginx ni: Netflix, Udemy.com, Hulu, Pinterest, CloudFlare, WordPress.com, GitHub, SoundCloud ati ọpọlọpọ awọn omiiran.

Ọpọlọpọ awọn orisun ti tẹlẹ ti tẹjade lori oju-iwe wẹẹbu nipa ifiwera laarin Apache ati Nginx (Mo tumọ si gaan 'Awọn nkan' Apache Vs Nginx '), ọpọlọpọ eyiti o ṣalaye ni ṣoki ni alaye, awọn ẹya oke wọn ati awọn iṣẹ labẹ ọpọlọpọ awọn oju iṣẹlẹ pẹlu awọn igbese ṣiṣe ni awọn aṣepari laabu. . Nitorina iyẹn ko ni koju nibi.

Emi yoo jiroro pin iriri mi ati awọn ero nipa gbogbo ijiroro naa, ni igbidanwo Apache ati Nginx, mejeeji ni awọn agbegbe iṣelọpọ ti o da lori awọn ibeere fun gbigba awọn ohun elo wẹẹbu igbalode, ni apakan ti nbo.

Awọn Idi Ti Mo Fi Wa Nginx Ni Dara Dara ju Apache

Awọn atẹle ni awọn idi ti Mo ṣe fẹ olupin ayelujara Nginx lori Apache fun ifijiṣẹ akoonu wẹẹbu ode oni:

Nginx jẹ ọkan ninu awọn olupin wẹẹbu iwuwo ina wa nibẹ. O ni awọn ifẹsẹtẹ kekere lori eto ti a fiwera si Apache eyiti o ṣe imuse iwọn titobi ti iṣẹ ṣiṣe pataki lati ṣiṣe ohun elo kan.

Nitori Nginx ṣe idapọ awọn ẹya pataki, o gbẹkẹle igbẹkẹle awọn olupin kẹta ti awọn oju-iwe wẹẹbu bii apamọ ẹhin Apache, FastCGI, Memcached, SCGI, ati awọn olupin uWSGI tabi olupin ohun elo, ie awọn olupin pato ede gẹgẹbi Node.js, Tomcat , abbl.

Nitorinaa lilo iranti rẹ dara julọ dara fun awọn imuṣiṣẹ awọn ohun elo lopin, ju Apache.

Bi o ṣe lodi si asapo-tabi ilana ilana ilana ilana ti Apache (ilana ‑ fun ‑ asopọ tabi okun ‑ fun ‑ asopọ asopọ), Nginx nlo faaji ti o ni iwọn, ti iṣẹlẹ ti a ṣe awakọ (asynchronous). O lo awoṣe ilana oniduro ti o ṣe deede si awọn orisun ohun elo ti o wa.

O ni ilana ọga kan (eyiti o ṣe awọn iṣẹ anfani bi iṣeto kika ati isopọ si awọn ibudo) ati eyiti o ṣẹda ọpọlọpọ oṣiṣẹ ati awọn ilana iranlọwọ.

Awọn ilana oṣiṣẹ le ọkọọkan mu ẹgbẹẹgbẹrun awọn isopọ HTTP nigbakanna, ka ati kọ akoonu si disiki, ati ibasọrọ pẹlu awọn olupin oke. Awọn ilana iranlọwọ (oluṣakoso kaṣe ati fifuye kaṣe) le ṣakoso lori awọn iṣẹ ṣiṣe kaṣe akoonu ‑ disk.

Eyi jẹ ki awọn iṣẹ rẹ jẹ iwọn, ati abajade si iṣẹ giga. Ọna apẹrẹ yii tun mu ki o yara, ojurere fun awọn ohun elo ode oni. Ni afikun, awọn modulu ẹgbẹ kẹta le ṣee lo lati faagun awọn iṣẹ abinibi ni Nginx.

Nginx ni ọna kika faili iṣeto kan ti o rọrun, ṣiṣe ni irọrun rọrun lati tunto. O ni awọn modulu eyiti o ṣakoso nipasẹ awọn itọsọna ti a ṣalaye ninu faili iṣeto ni. Ni afikun, awọn itọsọna ti pin si awọn itọsọna idena ati awọn itọsọna ti o rọrun.

A ṣalaye itọsọna Àkọsílẹ nipasẹ awọn àmúró ( { ati } ). Ti itọsọna iwe-aṣẹ kan le ni awọn itọsọna miiran ninu awọn àmúró, a pe ni o tọ gẹgẹbi awọn iṣẹlẹ, http, olupin, ati ipo.

http {
	server {
		
	}
}

Itọsọna ti o rọrun kan ni orukọ ati awọn aye ti o yapa nipasẹ awọn alafo o pari pẹlu semicolon (;) .

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

		}
		
	}
}

O le ṣafikun awọn faili iṣeto aṣa nipa lilo itọsọna pẹlu, fun apẹẹrẹ.

http {
	server {

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

Apẹẹrẹ ti o wulo fun mi ni bii Mo ṣe ṣakoso lati tunto Nginx ni rọọrun lati ṣiṣẹ awọn oju opo wẹẹbu lọpọlọpọ pẹlu oriṣiriṣi awọn ẹya PHP, eyiti o jẹ ipenija diẹ pẹlu Apache.

Ọkan ninu awọn lilo ti o wọpọ ti Nginx n ṣeto rẹ bi olupin aṣoju, ninu ọran yii o gba awọn ibeere HTTP lati ọdọ awọn alabara o si fi wọn si awọn olupin ti o ni ibatan tabi ti oke ti a mẹnuba loke, lori awọn ilana oriṣiriṣi. O tun le ṣe atunṣe awọn akọle awọn ibeere alabara ti a firanṣẹ si olupin ti a fi ranṣẹ, ati tunto ifipamọ awọn idahun ti o wa lati awọn olupin ti a firanṣẹ.

Lẹhinna o gba awọn idahun lati ọdọ awọn olupin proxied ati fi wọn si awọn alabara. O jẹ irọrun ti o rọrun lati tunto bi olupin aṣoju ti akawe si Apache nitori awọn modulu ti o nilo wa ni ọpọlọpọ awọn ọran ti a muu ṣiṣẹ nipasẹ aiyipada.

Akoonu tabi awọn faili aimi jẹ awọn faili ti a fipamọ sori disk lori kọnputa olupin, fun apẹẹrẹ awọn faili CSS, awọn faili JavaScripts tabi awọn aworan. Jẹ ki a ṣe akiyesi oju iṣẹlẹ kan nibiti o nlo Nginx bi iwaju fun Nodejs (olupin ohun elo).

Botilẹjẹpe olupin Nodejs (pataki awọn ilana Node) ti kọ ni awọn ẹya fun mimu faili aimi, wọn ko nilo lati ṣe ṣiṣe to lekoko lati fi akoonu ti kii ṣe agbara han, nitorinaa o jẹ anfani ni iṣe lati tunto olupin wẹẹbu lati sin akoonu aimi taara si ibara.

Nginx le ṣe iṣẹ ti o dara julọ julọ ti mimu awọn faili aimi lati itọsọna kan pato, ati pe o le ṣe idiwọ awọn ibeere fun awọn ohun-ini aimi lati inu awọn ilana olupin oke. Eyi ṣe ilọsiwaju iṣẹ-ṣiṣe gbogbogbo ti awọn olupin ẹhin.

Lati mọ iṣẹ giga ati akoko asiko fun awọn ohun elo wẹẹbu ti ode oni le pe fun ṣiṣe awọn iṣẹlẹ elo pupọ lori ẹyọkan tabi awọn olupin HTTP ti a pin. Eyi le jẹ ki o pọndandan fun ṣiṣeto iwọntunwọnsi fifuye lati kaakiri ẹru laarin awọn olupin HTTP rẹ.

Loni, iwọntunwọnsi fifuye ti di ọna ti a lo ni ibigbogbo fun imudarasi iṣamulo orisun ẹrọ ṣiṣe, mimu iwọn pọ si, gige isinku, jijẹ ilọsiwaju, ṣiṣe apọju, ati iṣeto awọn atunto ifarada-ẹbi - kọja awọn iṣẹlẹ elo lọpọlọpọ.

Nginx lo awọn ọna iwọntunwọnsi fifuye wọnyi:

  • yika-robin (ọna aiyipada) - awọn ibeere si awọn olupin oke ni a pin kaakiri ni ọna iyipo-robin (ni tito akojọ awọn olupin ni adagun odo).
  • asopọ ti o kere ju - nibi ibeere ti nbọ ti wa ni proxied si olupin pẹlu nọmba to kere julọ ti awọn isopọ ti nṣiṣe lọwọ.
  • ip-hash - nibi a ti lo iṣẹ-eli lati pinnu kini olupin yẹ ki o yan fun ibeere ti n bọ (da lori adiresi IP ti alabara naa).
  • Generic elile - labẹ ọna yii, olutọju eto ṣalaye elile kan (tabi bọtini) pẹlu ọrọ ti a fun, awọn oniyipada ti ibeere tabi asiko asiko, tabi akopọ wọn. Fun apẹẹrẹ, bọtini le jẹ IP orisun ati ibudo, tabi URI. Nginx lẹhinna pin ẹrù naa laarin awọn olupin oke nipasẹ sisẹ elile kan fun ibeere lọwọlọwọ ati gbigbe si awọn olupin oke.
  • Akoko ti o kere julọ (Nginx Plus) - ṣe ipinnu ibere ti o tẹle si olupin oke pẹlu nọmba ti o kere julọ ti awọn isopọ lọwọlọwọ ṣugbọn ṣe ojurere fun awọn olupin pẹlu awọn akoko idahun apapọ ti o kere julọ.

Pẹlupẹlu, Nginx jẹ iwọn ti o ga julọ ati awọn ohun elo wẹẹbu igbalode paapaa awọn ibeere awọn ohun elo iṣowo fun imọ-ẹrọ ti o pese iṣẹ giga ati iwọn.

Ile-iṣẹ kan ti o ni anfani lati awọn ẹya irẹjẹ iyalẹnu ti Nginx jẹ CloudFlare, o ti ṣakoso lati ṣe iwọn awọn ohun elo wẹẹbu rẹ lati mu diẹ sii ju awọn iwo oju-iwe oju-iwe ti o ju bilionu 15 lọ pẹlu amayederun ti o niwọnwọn, ni ibamu si Matthew Prince, alabaṣiṣẹpọ ati Alakoso ti CloudFare.

Fun alaye okeerẹ diẹ sii, ṣayẹwo nkan yii lori bulọọgi Nginx: NGINX la Apache: Wiwo Wa ti Ibeere Ọdun-Meji kan.

Mejeeji Apache ati Nginx ko le paarọ ara wọn, wọn ni awọn aaye to lagbara ati ailagbara wọn. Sibẹsibẹ, Nginx nfunni ni agbara, irọrun, iwọn ati imọ-ẹrọ aabo fun igbẹkẹle ati agbara agbara awọn oju opo wẹẹbu igbalode ati awọn ohun elo wẹẹbu. Kini ya rẹ? Jẹ ki a mọ nipasẹ fọọmu esi ni isalẹ.