Firwat fannen ech Nginx praktesch besser wéi Apache


Laut der leschter Webserver-Ëmfro vun Netcraft, déi géint Enn 2017 duerchgefouert gouf, (präzis am November), sinn Apache an Nginx déi meescht benotzt Open Source Webserver um Internet.

Apache ass e gratis Open-Source HTTP-Server fir Unix-ähnlech Betribssystemer a Windows. Et gouf entwéckelt fir e sécheren, effizienten an erweiterbare Server ze sinn deen HTTP-Servicer synchroniséiert mat de herrschenden HTTP-Standarden ubitt.

Zënter dem Start ass Apache de populärste Webserver am Internet zënter 1996. Et ass de de facto Standard fir Webserver am Linux an Open Source Ökosystem. Nei Linux Benotzer fannen et normalerweis méi einfach ze konfiguréieren an ze benotzen.

Nginx (ausgeschwat 'Engine-x') ass e gratis, Open-Source, héich performant HTTP-Server, ëmgedréint Proxy, an en IMAP/POP3 Proxy Server. Just wéi Apache leeft et och op Unix-ähnleche Betribssystemer a Windows.

Bekannt fir seng héich Leeschtung, Stabilitéit, einfach Konfiguratioun, a gerénge Ressourceverbrauch, ass et iwwer d'Jore sou populär ginn a seng Notzung um Internet geet op méi Héichten. Et ass elo de Webserver vun der Wiel tëscht erfuerene Systemadministratoren oder Webmasteren vun Top Siten.

E puer vun de beschäftegten Siten ugedriwwen duerch:

  • Apache sinn: PayPal, BBC.com, BBC.co.uk, SSLLABS.com, Apple.com plus vill méi.
  • Nginx sinn: Netflix, Udemy.com, Hulu, Pinterest, CloudFlare, WordPress.com, GitHub, SoundCloud a vill anerer.

Et gi vill Ressourcen déi schonn um Internet publizéiert goufen betreffend de Verglach tëscht Apache an Nginx (ech mengen wierklech 'Apache Vs Nginx' Artikelen), vill vun deenen däitlech am Detail erklären, hir Top Featuren an Operatiounen ënner verschiddenen Szenarien abegraff Leeschtungsmoossnamen a Labo Benchmarks . Dofir gëtt dat hei net ugeschwat.

Ech wäert einfach meng Erfahrung a Gedanken iwwer déi ganz Debatt deelen, nodeems ech Apache an Nginx probéiert hunn, souwuel a Produktiounsëmfeld baséiert op Ufuerderunge fir modern Webapplikatiounen ze hosten, an der nächster Sektioun.

Grënn firwat ech Nginx praktesch besser fannen wéi Apache

Folgend sinn Grënn firwat ech Nginx Webserver iwwer Apache léiwer fir modern Webinhalt Liwwerung:

Nginx ass ee vu liichte Gewiicht Webserveren dobaussen. Et huet kleng Foussofdréck op engem System am Verglach zum Apache deen e grousst Ëmfang vu Funktionalitéit implementéiert fir eng Applikatioun ze lafen.

Well Nginx eng Handvoll Kärfeatures zesummesetzt, hänkt et op engagéierten Drëtt Partei Upstream Webserver wéi en Apache Backend, FastCGI, Memcached, SCGI, an uWSGI Server oder Applikatiounsserver, dh Sproochspezifesch Serveren wéi Node.js, Tomcat , etc.

Dofir ass seng Erënnerungsverbrauch vill besser gëeegent fir limitéiert Ressourceninstallatiounen, wéi Apache.

Am Géigesaz zu Apache's threaded oder process-orientéierter Architektur (Prozess-per-Connection oder thread-per-Connection Modell), benotzt Nginx eng skalierbar, event-driven (asynchron) Architektur. Et beschäftegt e verantwortleche Prozessmodell deen op déi verfügbar Hardware Ressourcen ugepasst ass.

Et huet e Masterprozess (deen déi privilegiéiert Operatiounen ausféiert wéi d'Konfiguratioun liesen an d'Verbindung un d'Ports) an deen e puer Aarbechter an Helfer Prozesser erstellt.

D'Aarbechterprozesser kënnen all Dausende vun HTTP-Verbindungen gläichzäiteg behandelen, Inhalt op Disk liesen a schreiwen, a mat Upstream Server kommunizéieren. D'Helferprozesser (Cache Manager a Cache Loader) kënnen op Disk Inhalt Caching Operatiounen verwalten.

Dëst mécht seng Operatiounen skalierbar, a resultéiert zu héijer Leeschtung. Dës Design Approche mécht et weider séier, gënschteg fir modern Uwendungen. Zousätzlech kënnen Drëtt Partei Moduler benotzt ginn fir déi gebierteg Funktionalitéiten am Nginx ze verlängeren.

Nginx huet eng einfach Konfiguratiounsdatei Struktur, sou datt et super einfach ass ze konfiguréieren. Et besteet aus Moduler déi kontrolléiert ginn duerch Direktiven, déi an der Konfiguratiounsdatei spezifizéiert sinn. Zousätzlech sinn Direktiven a Blockdirektiven an einfach Direktiven opgedeelt.

Eng Blockdirektiv gëtt duerch Klameren definéiert ({ an }). Wann eng Blockdirektiv aner Direktiven a Klammeren kann hunn, gëtt et e Kontext genannt wéi Eventer, http, Server a Standuert.

http {
	server {
		
	}
}

Eng einfach Direktiv besteet aus dem Numm a Parameteren, getrennt vu Plazen an endet mat engem Semikolon (;).

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

		}
		
	}
}

Dir kënnt personaliséiert Konfiguratiounsdateien mat der Inklusioun Direktiv enthalen, zum Beispill.

http {
	server {

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

E praktescht Beispill fir mech war wéi ech et fäerdeg bruecht hunn Nginx einfach ze konfiguréieren fir verschidde Websäite mat verschiddene PHP Versiounen ze lafen, wat e bësse vun enger Erausfuerderung mat Apache war.

Ee vun de gemeinsame Gebrauch vun Nginx ass et als Proxy Server opzestellen, an dësem Fall kritt et HTTP-Ufroe vu Clienten a passt se op Proxied oder Upstream Serveren déi uewen ernimmt goufen, iwwer verschidde Protokoller. Dir kënnt och Client Ufro Header änneren, déi op de proxied Server geschéckt ginn, a konfiguréieren d'Pufferung vun den Äntwerte vun de proxied Serveren.

Da kritt et Äntwerte vun de proxied Serveren a passt se un d'Clienten. Et ass méi einfach ze konfiguréieren als Proxy Server am Verglach zum Apache well déi erfuerderlech Moduler an de meeschte Fäll als Standard aktivéiert sinn.

Statesch Inhalt oder Dateie sinn typesch Dateien déi op der Disk um Servercomputer gespäichert sinn, zum Beispill CSS Dateien, JavaScripts Dateien oder Biller. Loosst eis e Szenario betruechten wou Dir Nginx als Frontend fir Nodejs (den Applikatiounsserver) benotzt.

Och wann den Nodejs Server (speziell Node Frameworks) Features fir statesch Dateihandhabung agebaut hunn, brauche se keng intensiv Veraarbechtung ze maachen fir net-dynamesch Inhalter ze liwweren, dofir ass et praktesch profitabel de Webserver ze konfiguréieren fir statesch Inhalt direkt ze déngen. Clienten.

Nginx kann eng vill besser Aarbecht maachen fir statesch Dateien aus engem spezifesche Verzeechnes ze handhaben, a kann Ufroe fir statesch Verméigen verhënneren datt Upstream Serverprozesser erstécken. Dëst verbessert d'Gesamtleistung vun de Backend Server wesentlech.

Fir Héichleistung an Uptime fir modern Webapplikatiounen ze realiséieren, kënnen e puer Uwendungsinstanzen op engem eenzegen oder verdeelt HTTP-Server lafen. Dëst kann am Tour erfuerderen d'Laaschtbalancéierung opzestellen fir d'Laascht tëscht Ären HTTP Serveren ze verdeelen.

Haut ass d'Laaschtbalancéierung eng wäit benotzt Approche ginn fir d'Betriebssystemressourcennutzung ze optimiséieren, d'Flexibilitéit ze maximéieren, d'Latenz ze reduzéieren, den Duerchgang ze erhéijen, d'Redundanz z'erreechen an d'Feeltolerant Konfiguratiounen opzebauen - iwwer verschidde Applikatiounsinstanzen.

Nginx benotzt déi folgend Laaschtbalancéierungsmethoden:

  • Round-Robin (Standardmethod) – Ufroe un d'Upstream-Server ginn op eng Round-Robin Manéier verdeelt (an der Reiefolleg vun der Lëscht vun de Serveren am Upstream Pool).
  • mannst verbonnen – hei gëtt déi nächst Ufro un de Server mat der mannsten Unzuel vun aktive Verbindungen geproxéiert.
  • ip-hash – hei gëtt eng Hash-Funktioun benotzt fir ze bestëmmen wéi ee Server fir déi nächst Ufro ausgewielt gëtt (baséiert op der IP Adress vum Client).
  • Generic Hash - ënner dëser Method spezifizéiert de Systemadministrator en Hash (oder Schlëssel) mam gegebene Text, Variabelen vun der Ufro oder Runtime, oder hir Kombinatioun. Zum Beispill kann de Schlëssel eng Quell IP an Hafen sinn, oder URI. Nginx verdeelt dann d'Laascht ënner den Upstream Serveren andeems en Hash fir déi aktuell Ufro generéiert an et géint d'Upstream Server plazéiert.
  • Klengst Zäit (Nginx Plus) - gëtt déi nächst Ufro un den Upstream Server mat der mannsten Unzuel vun aktuellen Verbindungen zou, awer favoriséiert d'Servere mat de niddregsten duerchschnëttleche Äntwertzäiten.

Ausserdeem ass Nginx héich skalierbar a modern Webapplikatiounen, besonnesch Enterprise Uwendungen verlaangen Technologie déi héich Leeschtung a Skalierbarkeet ubitt.

Eng Firma déi vum Nginx seng erstaunlech Skalierbarkeet Feature profitéiert ass CloudFlare, et huet et fäerdeg bruecht seng Webapplikatiounen ze skaléieren fir méi wéi 15 Milliarde monatlecht Säitvisioun mat enger relativ bescheidener Infrastruktur ze handhaben, laut Matthew Prince, Matgrënner a CEO vu CloudFare.

Fir eng méi ëmfaassend Erklärung, kuckt dësen Artikel um Nginx Blog: NGINX vs Apache: Our View of a Decade-Old Question.

Béid Apache an Nginx kënnen net vuneneen ersat ginn, si hunn hir staark a schwaach Punkten. Wéi och ëmmer, Nginx bitt eng mächteg, flexibel, skalierbar a sécher Technologie fir zouverlässeg an effizient modern Websäiten a Webapplikatiounen z'ënnerstëtzen. Wat ass Är Meenung? Loosst eis iwwer de Feedbackformular hei drënner wëssen.