De två första artiklarna i serien har gett en överblick och talade också om de väsentliga modulerna för Nginx. Denna handledning hjälper dig att komma igång med att använda Nginx genom att vägleda dig genom några grundläggande tekniker för hantering av konfigurationsfiler och inställning av grundläggande parametrar i konfigs.
När Nginx är installerat, / Etc / nginx /
katalogen kommer att ha följande innehåll:
nginx.conf
: Den primära konfigurationsfilen.conf.d
: används för saker som laddning av moduler och för saker som inte är specifika för en enda virtuell värd.sites-available
: lagring Allt virtuella värdkonfigurationer, även om de för närvarande inte är aktiverade.sites-aktiverade
: alla webbplatser som är aktiverade (symlinker till filer i platserna-tillgänglig mapp).mime.types
: Kartor filnamnstillägg till MIME typer av svar.Detta webbplatser- * mapp arbetsflöde gör sakerna lite mer organiserade. Vid multipla webbplatser, dvs virtuella värdar, får varje virtuell värd sin egen konfigurationsfil. sites-available
kan innehålla alla virtuella värdkonfigurationsfiler, medan de som är aktiverade kan symlinkeras från sites-aktiverade
.
Den här konfigurationen är standard när du installerar Nginx. Du kan se hur inkludera
har tillåtit inkludering av externa konfigurationsfiler. Om det finns fel i någon av dessa inkluderade filer, kommer Nginx inte att ladda.
Nginx, som vilken annan webbserver som helst, låter dig konfigurera mer än en virtuell värd.
# sites-enabled / example.com.conf server lyssna 80; # både adress och port, eller bara adress eller enda port. server_name example.com www.example.com; # Namn på en virtuell server. Kan använda jokertecken och vanliga uttryck. access_log /var/log/nginx/example_com_access.log; error_log /var/log/nginx/example_com_error.log; # sätter konfiguration beroende på en begäran URI. Plats / root /var/www/www.example.com; index index.html index.htm;
Detta görs via serverns block. Lyssningsdirektivet beskriver porten som webbservern lyssnar på och servernamnsregistret listar alla servernamn. På platsen kan du definiera hur den virtuella värden fungerar.
Process-ID för master Nginx-processen skrivs till en fil enligt definitionen i pid-direktivet, t.ex.. pid /var/run/nginx.pid;
. Denna huvudprocess stöder följande signaler:
TERM, INT | Snabb avstängning |
SLUTA MED | Graceful Shutdown |
HUP | Uppdatera config + Arbetare graciös avstängning + Starta om |
USR1 | Öppna öppna loggfiler igen |
USR2 | Uppgradera körbar på flyg |
VINSCH | Graciös avstängning av arbetarnas processer |
För att ladda om Nginx kan du springa döda -HUP
.
Individuella arbetstagarprocesser kan också styras via signaler.
TERM, INT | Snabb avstängning |
SLUTA MED | Graceful Shutdown |
USR1 | Öppna öppna loggfiler igen |
VINSCH | onormal uppsägning för debugging * kräver felsökningspunkter |
För detta måste du kompilera Nginx med felsökningsflaggan (--med-debug
). Efter det är det möjligt att felsöka anslutningar från specifika adresser med debug_connection
direktiv.
error_log / var / log / nginx / errors; händelser debug_connection 192.168.1.18;
När du ber om hjälp med Nginx, var noga med att dela ut resultatet av nginx -V
, fullständig konfiguration och felsökningsloggen.
Detta uppnås med hjälp av en error_page
direktiv. Det definierar resursen som kommer att visas för felet.
# 1 error_page 404 / 404.html; error_page 500 502 503 504 / 50x.html; # 2 error_page 404 = 200 /empty.gif; # ändra svarskoden till en annan med hjälp av "= svar" error_page 404 = 301 http://example.com/notfound.html; # använd omdirigeringar för felbehandling # 3 # felbehandling med en namngiven platsplats / error_page 404 = @fallback; plats @ fallback proxy_pass http: // backend;
Det finns också ett direktiv som heter recursive_error_pages
vilket möjliggör flera omdirigeringar med hjälp av error_page-direktivet. Till exempel:
error_page 400 404 / 404.html; recursive_error_pages on; plats ~ * ^ / (404 \ .html | 500 \ .html | 503 \ .html) $ log_not_found off; # Inaktiverar loggning av fel om inte hittade filer. error_page 404 = @default; location @default log_not_found on; root / var / www / default;
En begäran där indexfilen inte hittas dirigeras till den här modulen (ngx_http_autoindex_module). [Exempel: Lokal nätverksdelning]
plats / root / var / www / localdropbox; autoindex på; # Aktiverar eller inaktiverar katalogutgåvan. autoindex_exact_size off # Exakt filstorlek vs avrunda dem till närmaste KB, MB, GB. autoindex_format html; # format för en kataloglista. XML, JSON, JSONP möjlig. autoindex_localtime på; # lokal TZ vs UTC.
"Request entity too Large" (413) är ett vanligt felmeddelande när användaren försöker ladda upp en fil. Denna filstorlek styrs av en Nginx-konfigurationsvariabel:
variabel client_max_body_size 10M;
# M står för megabyte.
Det här ställer in den maximala storleken på klientförfrågan, som anges i rubriken "Innehållslängd". För att få lite användaråterkoppling för dessa uppladdningar kan du också använda nginx-uppladdnings-framdriftsmodulen. Du måste lägga till ett X-Progress-ID, vilket hjälper unikt att identifiera filen som laddas upp.
Nginx har en mycket användbar och smidig funktion för att servera cookies för att identifiera slutanvändare. I en situation där du inte vill använda extern analys, ngx_http_userid_module
modulen kan fylla i genom att servera cookies.
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"';
Genom att aktivera denna modul, variablerna $ uid_reset
, $ uid_got
och $ uid_set
bli tillgänglig. Dessa kan hjälpa dig att skriva ännu mer invecklade omskrivningsregler.
Dessa steg bör definitivt komma igång på din väg att använda Nginx mer produktivt.