Nginx Guide Introduksjon

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.

Omvendt proxy-server

Å bruke en omvendt proxy er svært viktig som det hjelper i:

  1. gjemmer eksistensen og egenskapene til den faktiske opprinnelsesserveren
  2. fordeler lasten
  3. komprimere og cache innhold
  4. gjør A / B-testing
  5. forespørsel / respons manipulering
Kilde: Wikipedia

HTTP-server (versus Apache)

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.

Arkitektur og internasjonal

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 Applications

Den 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:

  1. Klient sender HTTP-forespørsel.
  2. Nginx-kjerne velger riktig fasehåndterer basert på den konfigurerte plasseringen som samsvarer med forespørselen.
  3. Hvis det er konfigurert for å gjøre det, velger en lastbalanser en oppstrøms server for proxying.
  4. Fasehåndterer gjør jobben sin og sender hver utgangsbuffer til det første filteret.
  5. Første filter passerer utgangen til det andre filteret.
  6. Andre filter passerer utgangen til den tredje (og så videre).
  7. Endelig respons sendes til klienten.

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-konfigurasjon

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. 

nginx.conf

#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.