Nginx de configurare corectă
Un pas greșit la capcane în configurația și funcționarea serverului web este foarte ușor. Dar este greu de înțeles motivul pentru funcționarea incorectă sau nu întotdeauna corecte / incorecte, în cazul în care sunt respectate toate regulile.
Locul de amplasare rădăcină în cadrul secțiunii
Nu este nimic greșit în plasarea rădăcină-director în interiorul locație. Dar dacă locația nu se potrivește, atunci acesta nu va avea acces la directorul rădăcină. Corect de a face acest lucru:
# Specifică rădăcina în interiorul secțiunii de server
indice de mai multe directive
Nu este necesar pentru a produce un număr mare de directive de index. Prescrierea o dată bloc http.
# Indicele va fi automat moștenită în toate secțiunile
Utilizarea dacă
Știi că, dacă = rău. Dacă utilizați este nevoie să fie atent directive, ușor de a face o greșeală. În măsura în care este posibil, evitați utilizarea în cazul în care.
numele serverului
Să presupunem că site-ul dvs. este pe domeniul somesite.com și redirecționa utilizatorii către acesta, care merg pe www.somesite.com:
# Controale și redirecționează gazdă
Iată câteva probleme. Acasă - în cazul în care. Indiferent de cererea gazdă (cu sau fără www), Nginx încă verifică dacă. Pentru fiecare cerere. În schimb, puteți face acest lucru:
schema # Utilizare $, care este potrivit pentru http și https
Verificați dacă fișierul
Nu utilizați pentru a verifica dacă pentru fișierul:
# Abordarea este cel puțin la fel de eficace
În schimb au existat Directiva Nginx try_files.
# Verificați secvența pentru prezența fișierului, în cazul în care nu există, du-te la index.html
Este demn de remarcat faptul că directiva poate fi de asemenea folosite pentru a proteja serverele Web împotriva accesului neautorizat.
Cererile de transfer în PHP
Dacă Nginx redirecționa toate cererile care se termină în .php. direct la PHP interpret, pentru intrușii sunt oportunități de a rula cod arbitrar. implicit PHP încearcă să ghicească în cazul în care ar trebui să efectueze cerere necorespunzătoare. Deci, mai întâi trebuie să corectați php.ini. care precizează:
# Interpret va procesa numai cereri valide
Acordați atenție la configurarea corectă a Nginx:
# Setările pot fi combinate
Calea FastCGI
Un greșit moduri de plasare script FastCGI de multe ori duce la eroare „script-ul primar necunoscut“. care pot fi rezolvate cu ușurință.
Rescriere (rescriere)
Utilizați $ REQUEST_URI variabilă pentru a schimba URI de solicitare:
# Redirect la pagina 301
# Completează automat anchetă
proxy
Nu redirecționa toate cererile pentru PHP în acest formular:
# Totul pe phpcgi.socket Transmite
Utilizați toate aceleași try_files directive.
# Trimite numai cererile necesare la proxy
# În cazul în care Nginx nu poate procesa cererea URI le apoi verificați directorul pentru prezența, și apoi transmite la proxy