Primele două articole din serie au oferit o imagine de ansamblu și au vorbit și despre modulele esențiale pentru Nginx. Acest tutorial vă va ajuta să începeți să utilizați Nginx ghidându-vă prin câteva tehnici de bază privind gestionarea fișierelor de configurare și configurarea parametrilor de bază în config.
După ce Nginx este instalat, / Etc / nginx /
va avea următorul conținut:
nginx.conf
: Fișierul de configurare primar.conf.d
: utilizat pentru încărcarea modulului și pentru lucruri care nu sunt specifice unei singure gazde virtuale.Site-uri disponibile-
: stocare toate configurații gazdă virtuale, chiar dacă în prezent nu sunt activate.Site-uri activate
: toate site-urile care sunt activate (simboluri pentru fișiere în folderul disponibil pentru site-uri).mime.types
: extinde numele fișierelor la tipurile de răspunsuri MIME.Acest site-uri * workflow folder face lucrurile mai puțin organizate. În cazul mai multor site-uri Web, adică gazde virtuale, fiecare gazdă virtuală își obține propriul fișier de configurare. Site-uri disponibile-
poate conține toate fișierele de configurare gazdă virtuală, în timp ce cele care sunt activate pot fi simbolice de la Site-uri activate
.
Această configurație este implicită atunci când instalați Nginx. Puteți vedea cum include
a permis includerea fișierelor de configurare externe. Dacă există erori în oricare dintre aceste fișiere incluse, Nginx nu va încărca.
Nginx, ca orice alt server web, vă permite să configurați mai multe gazde virtuale.
# site-enabled / serverul example.com.conf listen 80; # adresa și portul, sau numai adresa sau portul. server_name example.com www.example.com; # numele unui server virtual. Poate utiliza expresii regulate și expresii regulate. access_log /var/log/nginx/example_com_access.log; error_log /var/log/nginx/example_com_error.log; # stabilește configurația în funcție de un URI de solicitare. locație / root /var/www/www.example.com; index index.html index.htm;
Acest lucru se face prin blocul server. Directiva de ascultare descrie portul pe care asculta serverul web și direcția server_name enumeră toate numele serverului. În interiorul locației, puteți defini modul în care funcționează gazda virtuală.
ID-ul de proces al procesului master Nginx este scris într-un fișier definit de directiva pid, de ex. pid /var/run/nginx.pid;
. Acest proces master acceptă următoarele semnale:
TERM, INT | Oprire rapidă |
PĂRĂSI | Grație opririi |
HUP | Reîncărcați configurarea + Oprirea grațioasă a lucrătorilor + Reporniți |
USR1 | Re-deschideți fișierele jurnal |
USR2 | Actualizați executabilul în zbor |
VINCI | Grație închiderii proceselor muncitorilor |
În scopul de a reîncărca Nginx, puteți rula ucide-HUP
.
Procesele individuale ale lucrătorilor pot fi de asemenea controlate prin intermediul semnalelor.
TERM, INT | Oprire rapidă |
PĂRĂSI | Grație opririi |
USR1 | Re-deschideți fișierele jurnal |
VINCI | Terminarea anormală pentru depanare * necesită puncte de depanare |
Pentru aceasta, va trebui să compilați Nginx cu steagul de depanare (--cu-debug
). După aceasta, este posibilă depanarea conexiunilor de la anumite adrese cu debug_connection
directivă.
error_log / var / log / nginx / erori; evenimente debug_connection 192.168.1.18;
Atunci când cereți ajutor pentru Nginx, asigurați-vă că ați împărțit rezultatul nginx -V
, configurația completă și jurnalul de depanare.
Acest lucru este realizat cu ajutorul unui error_page
directivă. Definește resursa care va fi afișată pentru eroare.
# 1 error_page 404 /404.html; error_page 500 502 503 504 / 50x.html; # 2 error_page 404 = 200 /empty.gif; # modificați codul de răspuns la altul utilizând "= răspuns" error_page 404 = 301 http://example.com/notfound.html; # utilizarea redirecționărilor pentru procesarea erorilor # 3 # procesarea erorilor cu o locație denumită locație / error_page 404 = @fallback; locație @fallback proxy_pass http: // backend;
Există, de asemenea, o directivă numită recursive_error_pages
care permite efectuarea mai multor redirecționări utilizând directiva error_page. De exemplu:
error_page 400 404 / 404.html; recursive_error_pages pe; locație ~ * ^ / (404 \ .html | 500 \ .html | 503 \ .html) $ log_not_found off; # Dezactivează înregistrarea erorilor legate de fișierele care nu au fost găsite. error_page 404 = @default; locație @default log_not_found on; rădăcină / var / www / implicită;
O cerere în cazul în care fișierul index nu este găsit este direcționat către acest modul (ngx_http_autoindex_module). [Exemplu: Partajarea rețelei locale]
locație / root / var / www / localdropbox; autoindex on; # Activează sau dezactivează ieșirea din lista de directoare. autoindex_exact_size off; # Dimensiunea exactă a fișierului vs rotunjirea acestora la cel mai apropiat KB, MB, GB. autoindex_format html; # format dintr-o listă de directoare. XML, JSON, JSONP posibil. autoindex_localtime pe; # local TZ vs UTC.
"Solicitarea entității prea mari" (413) este un mesaj comun de eroare, atunci când utilizatorul încearcă să încarce un fișier. Această dimensiune a fișierului este controlată de o variabilă de configurare Nginx:
variabila client_max_body_size 10M;
# M înseamnă megaocteți.
Aceasta stabilește dimensiunea maximă a corpului solicitării clientului specificat în antetul solicitării "Conținut-lungime". Pentru a avea feedback de la utilizatori pentru aceste încărcări, puteți utiliza, de asemenea, modulul nginx-upload-progress-module. Trebuie să adăugați un ID X-Progress, care ajută la identificarea unică a fișierului încărcat.
Nginx are o funcționalitate foarte utilă și nifty de a servi cookie-uri pentru identificarea utilizatorilor finali. Într - o situație în care nu doriți să utilizați analize externe, ngx_http_userid_module
Modulul poate fi completat prin servirea cookie-urilor.
userid pe; username_name uid; userid_domain example.com; userid_path /; userid_expires 365d; userid_p3p "policyref =" / w3c / p3p.xml ", CP =" CUR ADM NOU NOR STA NID "';
Prin activarea acestui modul, variabilele $ uid_reset
, $ uid_got
și $ uid_set
devine disponibil. Acestea vă pot ajuta să scrieți și mai multe reguli complicate de rescriere.
Acești pași ar trebui să vă ducă cu siguranță la început în calea utilizării mai productive a produsului Nginx.