De to første artiklene i serien har gitt en oversikt og snakket også om de grunnleggende modulene for Nginx. Denne opplæringen vil hjelpe deg med å komme i gang med å bruke Nginx ved å veilede deg gjennom noen grunnleggende teknikker for å administrere konfigurasjonsfiler og sette opp grunnleggende parametere i konfigs.
Etter at Nginx er installert, vil / Etc / Nginx /
katalogen vil ha følgende innhold:
nginx.conf
: Den primære konfigurasjonsfilen.conf.d
: brukes til ting som lasting av moduler og for ting som ikke er spesifikke for en enkelt virtuell vert.sider-butikken
: lagring alle virtuelle verts konfigurasjoner, selv om de ikke er aktivert for øyeblikket.sider-aktiverte
: alle nettstedene som er aktivert (symlinks til filer i den tilgjengelige mappen).mime.types
: Kart filnavn utvidelser til MIME typer svar.Dette nettsteder- * mappe arbeidsflyt gjør ting litt mer organisert. I tilfelle av flere nettsteder, dvs. virtuelle verter, får hver virtuelle vert sin egen konfigurasjonsfil. sider-butikken
kan inneholde alle de virtuelle vertkonfigurasjonsfilene, mens de som er aktivert, kan symlinkes fra sider-aktiverte
.
Denne konfigurasjonen er standard når du installerer Nginx. Du kan se hvordan inkludere
har tillatt inkludering av eksterne konfigurasjonsfiler. Hvis det er feil i noen av disse inkluderte filene, vil Nginx ikke laste.
Nginx, som alle andre web-serverer, lar deg konfigurere mer enn én virtuell vert.
# sites-enabled / example.com.conf server listen 80; # både adresse og port, eller bare adresse eller eneste port. server_name example.com www.example.com; # navn på en virtuell server. Kan bruke jokertegn og vanlige uttrykk. access_log /var/log/nginx/example_com_access.log; error_log /var/log/nginx/example_com_error.log; # sett konfigurasjon avhengig av en forespørsel URI. sted / root /var/www/www.example.com; indeks index.html index.htm;
Dette gjøres via serverblokken. Lyttedirektivet beskriver porten som webserveren lytter på, og servernavnnavnet inneholder alle servernavn. På innsiden, kan du definere hvordan den virtuelle verten fungerer.
Prosess-ID for master Nginx-prosessen er skrevet til en fil som definert av pid-direktivet, f.eks. pid /var/run/nginx.pid;
. Denne hovedprosessen støtter følgende signaler:
TERM, INT | Hurtig nedleggelse |
SLUTTE | Grasiøs nedleggelse |
HUP | Last inn config + Arbeidere grasiøs nedleggelse + Start på nytt |
USR1 | Re-åpne loggfiler |
USR2 | Oppgrader kjørbar på fly |
VINSJ | Grasiøs nedleggelse av arbeidsprosesser |
For å gjenopplaste Nginx, kan du kjøre drepe -HUP
.
Individuelle arbeidsprosesser kan også styres via signaler.
TERM, INT | Hurtig nedleggelse |
SLUTTE | Grasiøs nedleggelse |
USR1 | Re-åpne loggfiler |
VINSJ | unormal avslutning for feilsøking * krever feilsøkingspunkter |
For dette må du kompilere Nginx med feilsøkingsflagget (--med-debug
). Etter å ha gjort det, er det mulig å feilsøke tilkoblinger fra bestemte adresser med debug_connection
direktiv.
error_log / var / log / nginx / feil; hendelser debug_connection 192.168.1.18;
Når du ber om hjelp med Nginx, må du dele utdataene fra nginx -V
, full konfigurasjon og feilsøkingslogg.
Dette oppnås ved hjelp av en error_page
direktiv. Det definerer ressursen som vil bli vist for feilen.
# 1 error_page 404 / 404.html; error_page 500 502 503 504 / 50x.html; # 2 error_page 404 = 200 /empty.gif; # endre svarkoden til en annen ved hjelp av "= respons" error_page 404 = 301 http://example.com/notfound.html; # bruk omdirigeringer for feilbehandling # 3 # feilbehandling med en navngitt stedplassering / error_page 404 = @fallback; plassering @ fallback proxy_pass http: // backend;
Det er også et direktiv som heter recursive_error_pages
som gjør det mulig å gjøre flere omdirigeringer ved hjelp av error_page-direktivet. For eksempel:
error_page 400 404 / 404.html; recursive_error_pages on; plassering ~ * ^ / (404 \ .html | 500 \ .html | 503 \ .html) $ log_not_found off; # Deaktiverer logging av feil om ikke funnet filer. error_page 404 = @default; location @default log_not_found on; root / var / www / default;
En forespørsel der indeksfilen ikke er funnet, blir sendt til denne modulen (ngx_http_autoindex_module). [Eksempel: Lokal nettverksdeling]
plassering / root / var / www / localdropbox; autoindex på; # Aktiverer eller deaktiverer katalogoppføringsutgangen. autoindex_exact_size off; # Eksakt filstørrelse vs avrunde dem til nærmeste KB, MB, GB. autoindex_format html; # format av en katalogoppføring. XML, JSON, JSONP mulig. autoindex_localtime på; # lokal TZ vs UTC.
"Request entity too Large" (413) er en vanlig feilmelding når brukeren prøver å laste opp en fil. Denne filstørrelsen styres av en Nginx konfigurasjonsvariabel:
variabel client_max_body_size 10M;
# M står for megabyte.
Dette angir maksimal størrelse på klientforespørselslegemet, spesifisert i forespørselen for innholds lengde. For å få tilbakemeldinger fra brukerne for disse opplastingene, kan du også bruke nginx-upload-progress-modulen. Du må legge til en X-Progress-ID, som hjelper unikt å identifisere filen som lastes opp.
Nginx har en veldig nyttig og nifty funksjonalitet til å vise informasjonskapsler for å identifisere sluttbrukere. I en situasjon der du ikke vil ansette ekstern analyse, vil ngx_http_userid_module
modulen kan fylle ut ved å vise informasjonskapsler.
userid på; userid_name uid; userid_domain example.com; userid_path /; userid_expires 365d; userid_p3p 'policyref = "/ w3c / p3p.xml", CP = "CUR ADM OUR NOR STA NID"';
Ved å aktivere denne modulen, variablene $ uid_reset
, $ uid_got
og $ uid_set
bli tilgjengelig. Disse kan hjelpe deg med å skrive enda mer intrikate omskrivningsregler.
Disse trinnene bør definitivt komme i gang på vei til å bruke Nginx mer produktivt.