Recomandări pentru configurarea Nginx

Elementele de bază de configurare Nginx

Nginx este un server HTTP simplu, cu toate acestea, cei mai mulți oameni au utilizat anterior Apache utilizate pentru lampa. astfel încât există câteva lucruri pentru a configura Nginx, să urmăriți atunci când utilizați acest server de web. Factori importanți sunt, în primul rând, ceea ce este inversata serverul proxy Nginx și în al doilea rând de către serverul HTTP, în special, acest lucru se aplică să nu depună o adresă URL, care poate schimba modul în care doriți să configurați Nginx.

Primul lucru pe care trebuie să știți, Nginx ar putea fișierul de configurare utilizează o ierarhie de moștenire, directiva menționată în blocul de sus va fi setat la blocurile inferioare ca implicit, prin urmare, este necesar să se specifice directivelor în blocul de sus, dacă este posibil. Directiva a blocului superior la valorile implicite, dar în cele mai multe cazuri, valoarea poate fi schimbată.

Există trei ierarhii, care sunt numite de obicei blocuri: unitate HTTP. bloc și blocul de server de locație. în aceste blocuri ierarhie construită după cum urmează: http -> Server -> locație.

Mai mult decât atât, există două unități speciale de locație. eveniment Block și rădăcină. în care blocurile și locația http. Ambele conțin o cantitate mică a directivelor. Cea mai mare parte a timpului va fi petrecut pe celelalte 3 blocuri.

Blocuri au sens. Unitatea de serverul Apache este privit ca o gazdă virtuală. Aceasta se referă la o unitate de locație URI.

Atunci când se utilizează cuvintele cheie documentului determină în care unitate poate fi utilizată de directivă, așa cum sa menționat anterior, directiva este mai bine să se folosească în blocul superior.

gazde virtuale

Cele mai importante directive și server_name rădăcină. Acest lucru face ca unitatea să utilizeze fișierul de configurare a serverului Nginx, atunci când antetul HOST coincide cu numele serverului, si spune ce director pe computerul local pentru a utiliza atunci când caută fișierele de pe site-ul dvs. ..

Acestea formează gazda virtuală de bază, de exemplu:

Aici există două gazde virtuale. În primul rând, atunci când drach.pro sau sub orice drach.pro domeniu, cu excepția www trecut ca antet gazdă la browser. Faptul este că Nginx va alege întotdeauna cea mai exactă meci, iar atunci când vizitează www.drach.pro este sigur pentru a fi tratat la a doua unitate.

Localizare bloc

Nginx ca regulă, nu utilizați rescriere complexă este de obicei același lucru se poate face folosind locația unitate.

Un factor important este acea locație. cu excepția locația cu numele, lucra cu URI-ul fără nici un parametru de solicitare și locația doar un bloc nu va începe, astfel încât directiva ar trebui să fie amplasat în blocul superior. Directiva rădăcină. locația stabilită / indisponibilă locație / imagine / - atâta timp cât nu există nici definit în unitatea de server. Determinarea blocului superior previne duplicarea codului.

Un alt factor important este directiva server_name. Nginx va utiliza cea mai sigură unitate de locație. Mai multe informații pot fi găsite în Nginx oficial de documentare

Cererile de / forum este acum transferat cu succes la nou sub domeniu că în timp ce cererile de fișiere care nu sunt în / forum difuzate prin intermediul unei /home/drach.pro standard de.

Procesarea PHP

PHP sau orice alt server asociat cu locația poate determina unitatea de locație. pentru toate fișierele PHP.

Așa cum am menționat mai devreme, nginx nu a putut asociat cu fișierele și cu locația. care este motivul pentru care există o directivă în bloc try_files php. Acest bloc corespunde locației URI, care se sfârșește. php, dar nu contează fișierul sau nu. Prin urmare, se va potrivi /forum/avatars/user2.jpg/index.php cererea și va fi trimis la PHP, dar dacă și PHP nu este configurat corect, PHP se execută atunci când /forum/avatars/user2.jpg / forum / avatare / utilizator2. jpg / index.php nu există. Prin urmare, siguranța este compromisă. Vă rugăm să rețineți că acest lucru nu este eroarea Nginx, și comportamentul planificat, care nu poate fi „fix“.

Cu toate acestea, eroarea poate fi corectată în PHP, solicitând cgi.fix_pathinfo = 0 în fișierul php.ini.

Ca urmare, fișierele existente vor fi transferate prin intermediul rasshireniem.php în procesele FastCGI PHP care rulează pe portul 9000.

Optimizarea motorului de căutare

Cerere de depanare

Nginx din când în când este un server complex, dar din cauza jurnalul de erori, puteți înțelege întotdeauna ceea ce a mers prost. jurnal de eroare Directiva în documentația ia un al doilea argument. Acest lucru vă permite să determinați numărul de ieșire Nginx. valoarea de eroare vă va permite să depana cele mai multe probleme.

articole similare