Samtidig og raskere lastetider har alltid vært en utfordring for alle nettsteder med høy trafikk. For å laste inn nettsteder raskere, åpner nettlesere flere tilkoblinger til en webserver for å laste innholdet parallelt. Kombinert med vedvarende tilkoblinger, må webserveren være veldig robust og kunne skalere ikke-lineært med antall forespørsler.
Det blir svært viktig at nettsiden er basert på en rekke løst koblede men svært sammenhengende byggeblokker, og nginx er virkelig et viktig stykke for å kunne oppnå det.
Nginx (uttalt motor x) er en lett, gratis, åpen kildekode HTTP og omvendt proxy-server, samt en postproxy-server.
Nginx kan brukes som en fullstendig erstatning for andre HTTP-servere som Apache, eller kan også stå foran den eksisterende infrastrukturen du har til å fungere som omvendt proxy.
Å bruke en omvendt proxy er svært viktig som det hjelper i:
Hvordan er nginx forskjellig fra Apache? Nginx er hendelsesbasert og asynkron, mens Apache er helt avhengig av tråder. På en relativt høy trafikk webserver, er tråder bundet til å få minne utmattet. En begivenhet basert på en asynkron og ikke-blokkerende modell (av nginx) er en åpenbar vinner i et slikt tilfelle.
Den har en enkelt mesterprosess, og flere "arbeidere" -prosesser kjører under en ubehøvlet bruker. Innenfor hver arbeidstaker kan nginx håndtere flere tusen tilkoblinger.
Kilde: Arkitekturen av Open Source ApplicationsDen nginx arbeider
kode inneholder kjerne og funksjonelle moduler. Nginx modulære arkitektur lar deg utvide webserverfunksjonene uten å endre kjernen. Moduler leser og skriver til nettverket og lagrer, forvandler innhold, sender forespørsler til opprinnelses-servere, inkluderer server-sidehandlinger og andre ting. Modulene utgjør primært applikasjonslaget og presentasjonsfunksjonaliteten.
Nginx moduler kommer i forskjellige former: Kjerne moduler, hendelse moduler, fase håndtere, protokoller, variable håndtere, filtre, oppstrøms og last balancere. På denne tiden støtter nginx ikke dynamisk lastede moduler, så moduler må kompileres sammen med kjernen under bygging.
Nginx behandler tilkoblinger som moduler pipet til hverandre, som en kjede. For hver operasjon er det en modul som gjør det aktuelle arbeidet, f.eks. komprimering, endring av innhold, utførelse av server-side inkluderer og kommuniserer til oppstrøms applikasjonsservere. En typisk behandlingssyklus for HTTP-forespørsel ser ut som følgende:
Denne lagdelte og løst koblede, men høyt sammenhengende tilnærmingen gjør det veldig bra til hva det gjør.
Nedlasting og installasjon
Nginx-konfigurasjonen er lokalisert i tekstfiler, typisk på / Usr / lokal / etc / Nginx
eller / Etc / Nginx
. Hovedkonfigurasjonsfilen kalles nginx.conf
. Nginx-konfigurasjonsfilen er i hovedsak en liste over direktiver organisert i en logisk struktur. Hele oppførselen til søknaden er definert av verdiene du gir til disse retningslinjene.
#user ingen; worker_processes 1; #error_log logs / error.log; #error_log logs / error.log varsel; #error_log logs / error.log info; #pid logger / nginx.pid; hendelser worker_connections 1024; http ...
Ovenfor ser du et lite utdrag av en standard nginx conf (merket med forklaring). Hele filen kan også finnes på /usr/local/etc/nginx/nginx.conf.default
. Kjernen forsøker å forklare i detalj om hvert direktiv.
Denne artikkelen introduserte hva nginx er og den viktige rollen det spiller med å lage nettsteder raskere. Det berørte også direktiver i konfigurasjonsfilen. Den andre delen av artikkelen vil fortsette å forklare og gi noen oppskrifter for bruk av nginx i forskjellige sammenhenger og også å snakke om må-moduler av nginx.