Lucrul cu Nginx

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. 

Divizarea fișierelor de configurare

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.

Gazdă virtuală multiplă

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

Reîncarcă Nginx

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

Nginx în modul Debug

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.

404 și alte pagini de eroare

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ă; 

Index de auto-indexare

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.  

Dimensiunea încărcărilor de fișiere

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

fursecuri

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. 

Resurse aditionale

  1. Cum nginx procesează o cerere
  2. Nginx Debugging