De eerste twee artikelen in de serie hebben een overzicht gegeven en hebben ook gesproken over de essentiële modules voor Nginx. Deze tutorial helpt je aan de slag met Nginx door je te begeleiden bij enkele basistechnieken voor het beheren van configuratiebestanden en het instellen van basisparameters in de configs..
Nadat Nginx is geïnstalleerd, is de / Etc / nginx /
map heeft de volgende inhoud:
nginx.conf
: Het primaire configuratiebestand.conf.d
: gebruikt voor zaken als het laden van modules en voor dingen die niet specifiek zijn voor een enkele virtuele host.-sites-available
: opslaan allemaal virtuele hostconfiguraties, zelfs als deze momenteel niet zijn ingeschakeld.-sites-enabled
: alle sites die zijn ingeschakeld (symlinks naar bestanden in de map met beschikbare sites).mime.types
: brengt bestandsextensie-extensies toe aan MIME-typen responsen.Deze sites- * mapworkflow maakt de dingen een beetje meer georganiseerd. In het geval van meerdere websites, d.w.z. virtuele hosts, krijgt elke virtuele host zijn eigen configuratiebestand. -sites-available
kan alle configuratiebestanden van de virtuele host bevatten, terwijl de bestanden die zijn ingeschakeld van elkaar kunnen worden voorzien -sites-enabled
.
Deze configuratie is de standaardinstelling wanneer u Nginx installeert. Je kunt zien hoe omvatten
heeft de opname van externe configuratiebestanden toegestaan. Als er fouten zijn in een van deze opgenomen bestanden, zal Nginx niet laden.
Met Nginx kunt u, net als bij elke andere webserver, meer dan één virtuele host configureren.
# sites-enabled / example.com.conf server luister 80; # zowel adres als poort, of alleen adres of enige poort. server_name example.com www.example.com; # namen van een virtuele server. Kan jokertekens en reguliere expressies gebruiken. access_log /var/log/nginx/example_com_access.log; error_log /var/log/nginx/example_com_error.log; # stelt de configuratie in afhankelijk van een aanvraag-URI. locatie / root /var/www/www.example.com; index index.html index.htm;
Dit gebeurt via het serverblok. De luisterrichtlijn beschrijft de poort waarop de webserver luistert en de servernaamregel vermeldt alle servernamen. Binnenlocatie, kunt u definiëren hoe de virtuele host werkt.
De proces-ID van het hoofd-Nginx-proces wordt geschreven naar een bestand zoals gedefinieerd door de pid-richtlijn, bijv. pid /var/run/nginx.pid;
. Dit hoofdproces ondersteunt de volgende signalen:
TERM, INT | Quick Shutdown |
STOPPEN | Sierlijke Shutdown |
HUP | Herlaad config + Arbeiders sierlijke shutdown + Herstart |
USR1 | Open logbestanden opnieuw |
USR2 | Upgrade uitvoerbaar bij fly |
LIER | Sierlijke stopzetting van werkprocessen |
Om Nginx te herladen, kun je rennen kill -HUP
.
Individuele werkprocessen kunnen ook worden bestuurd via signalen.
TERM, INT | Quick Shutdown |
STOPPEN | Sierlijke Shutdown |
USR1 | Open logbestanden opnieuw |
LIER | abnormale beëindiging voor foutopsporing * vereist foutopsporingspunten |
Hiervoor moet u Nginx compileren met de foutopsporingsvlag (--met-debug
). Nadat u dat gedaan hebt, is het mogelijk om verbindingen van specifieke adressen te debuggen met de debug_connection
richtlijn.
error_log / var / log / nginx / errors; gebeurtenissen debug_connection 192.168.1.18;
Vraag bij het vragen om hulp met Nginx de uitvoer van nginx -V
, volledige configuratie en het logboek voor foutopsporing.
Dit wordt bereikt met behulp van een error_page
richtlijn. Het definieert de bron die voor de fout wordt weergegeven.
# 1 error_page 404 / 404.html; error_page 500 502 503 504 / 50x.html; # 2 error_page 404 = 200 /empty.gif; # verander de antwoordcode in een andere met behulp van de "= response" error_page 404 = 301 http://example.com/notfound.html; # gebruik omleidingen voor foutverwerking # 3 # foutverwerking met een benoemde locatielocatie / error_page 404 = @fallback; location @fallback proxy_pass http: // backend;
Er is ook een richtlijn genoemd recursive_error_pages
die het mogelijk maakt om verschillende omleidingen te doen met behulp van de error_page richtlijn. Bijvoorbeeld:
error_page 400 404 / 404.html; recursive_error_pages aan; locatie ~ * ^ / (404 \ .html | 500 \ .html | 503 \ .html) $ log_not_found off; # Schakelt het loggen van fouten over niet gevonden bestanden uit. error_page 404 = @default; location @default log_not_found on; root / var / www / default;
Een verzoek waarbij het indexbestand niet wordt gevonden, wordt naar deze module gerouteerd (ngx_http_autoindex_module). [Voorbeeld: lokaal netwerk delen]
locatie / root / var / www / localdropbox; autoindex aan; # Schakelt de uitvoer van de directorylijst in of uit. autoindex_exact_size uit; # Exacte bestandsgrootte versus afronding naar dichtstbijzijnde KB, MB, GB. autoindex_format html; # indeling van een directoryvermelding. XML, JSON, JSONP mogelijk. autoindex_localtime aan; # lokale TZ versus UTC.
"Verzoek entiteit te groot" (413) is een veel voorkomende foutmelding wanneer de gebruiker probeert een bestand te uploaden. Deze bestandsgrootte wordt beheerd door een Nginx-configuratievariabele:
variabele client_max_body_size 10M;
# M staat voor megabytes.
Hiermee wordt de maximale grootte van het hoofdgedeelte van de clientaanvraag ingesteld, gespecificeerd in de header "Content-Length" request. Om gebruikersfeedback te hebben voor deze uploads, kun je ook nginx-upload-voortgangsmodule gebruiken. U moet een X-Progress-ID toevoegen, waarmee u het bestand dat wordt geüpload, eenduidig kunt identificeren.
Nginx heeft een zeer nuttige en handige functionaliteit voor het aanbieden van cookies voor het identificeren van eindgebruikers. In een situatie waarin u geen externe analyses wilt gebruiken, is de ngx_http_userid_module
module kan invullen door cookies te serveren.
userid aan; userid_name uid; userid_domain example.com; userid_path /; userid_expires 365d; userid_p3p 'policyref = "/ w3c / p3p.xml", CP = "CUR ADM ONZE NOR STA NID"';
Door deze module in te schakelen, de variabelen $ uid_reset
, $ uid_got
en $ uid_set
beschikbaar worden. Deze kunnen u helpen bij het schrijven van nog ingewikkeldere herschrijfregels.
Met deze stappen moet u zeker beginnen aan uw pad om Nginx productiever te gebruiken.