modul ngx_http_core_module
Activează sau dezactivează fișierul asincron IO (AIO), în FreeBSD și Linux:
In FreeBSD AIO poate fi folosit, începând cu FreeBSD 4.3. Înainte de FreeBSD 11,0 AIO pot fi fie colectate în nucleu static:
sau încărcate dinamic prin modulul de kernel loadable:
Acesta poate fi utilizat în Linux AIO numai începând cu versiunea 2.6.22 de nucleu. În plus, trebuie, de asemenea, adăugat directio. în caz contrar citirea va fi inhibată:
În timp ce pornirea și AIO pe Linux sendfile pentru fișierele care sunt mai mari decât sau egală cu specificată în directiva directio. vor fi folosite AIO, dar pentru fișiere mai mici sau off directio - sendfile.
operațiunile de fișiere de trimitere de citire sau vor fi tratate cu un curent de piscină specificat. În cazul în care piscina fir nu este utilizat în mod explicit piscina cu numele „default“. Numele piscina poate fi setat folosind variabile:
suport implicit threading nu este activat, ar trebui să li se permită să construiască cu ajutorul opțiunii de configurare --with-fire. În prezent, multithreading este compatibil doar cu o metode epoll. kqueue și eventport. Trimiterea de fișiere în modul multifir este acceptat numai pe Linux.
http. server. locație
Această directivă a apărut în versiunea 1.1.15.
Această directivă este disponibilă numai pe sistemele care au interfețe openat () și fstatat (). Astfel de sisteme includ versiuni moderne ale FreeBSD, Linux și Solaris.
Parametrii privind și if_not_owner necesită costuri suplimentare de prelucrare.
http. server. locație. dacă în locația
Specifică URI-ul, care va fi afișat pentru aceste erori. Valoarea uri pot utiliza variabile.
Atunci când acest lucru se face pentru redirecționare internă a spus-uri. și metoda solicitarea clientului este schimbat la „GET“ (pentru toate celelalte decât „GET“ și „HEAD“ metode).
Mai mult, este posibil să se schimbe codul de răspuns la celălalt, folosind sintaxa formularului „răspuns =“, de exemplu:
În cazul în care un răspuns de eroare este procesat de FastCGI / uwsgi / SCGI-server proxy sau, iar serverul poate returna un răspuns coduri diferite, cum ar fi 200, 302, 401 sau 404, este posibil să le dea codul retur:
În cazul în care redirecționarea internă nu trebuie să se schimbe URI-ul și metoda, este posibil să treacă o eroare la procesarea locația numită:
Dacă apare eroare de procesare uri, clientul returnează un răspuns la acest din urmă caz, codul de eroare.
De asemenea, este posibil să se utilizeze o manipulare eroare de redirecționare URL:
În acest caz, în mod implicit clientul returnează codul de răspuns 302. Puteți modifica doar unul dintre codurile de răspuns referitoare la o redirecționare (301, 302, 303, 307 și 308).
Directivele sunt moștenite de la nivelul anterior, cu condiția ca la acest nivel nu sunt descrise directiva lor error_page.
În cazul în care actele lingering_close. Această directivă specifică timpul maxim să aștepte date suplimentare din partea clientului. În cazul în care datele nu au fost primite, conexiunea este închisă în acea perioadă. În caz contrar, datele sunt citite și ignorate, iar Nginx așteaptă din nou primirea de date. Ciclul de „asteptati-citit-ignore“, a repetat, dar nu mai mult decât lingering_time directiva specificată.
UNIX-prize (0.8.21) sunt stabilite cu prefixul "unix:":
În cazul în care directiva nu este specificată, utilizată sau * 80. Dacă Nginx rulează cu drepturi de superutilizator, sau * 8000.
Înainte de versiunea 0.8.21, această opțiune este numită implicit.
ssl Parametru (0.7.14) indică faptul că toate conexiunile acceptate pe acest port ar trebui să funcționeze în modul SSL. Acest lucru permite o configurație compactă pentru serverul care rulează în două moduri - HTTP și HTTPS.
http2 Parametru (1.9.5) vă permite să-și asume acest port HTTP / 2 -connection. De obicei, pentru ca acest lucru să funcționeze, trebuie să specificați, de asemenea, parametrul ssl. Nginx dar poate fi, de asemenea configurat pe HTTP / 2 conexiuni fara tehnica SSL.
SPDY Parametru (1.3.15-1.9.4) vă permite să-și asume acest -connection portul SPDY. De obicei, pentru ca acest lucru să funcționeze, trebuie să specificați, de asemenea, parametrul ssl. dar puteți configura de asemenea, Nginx și recepție SPDY-conexiuni fără SSL.
proxy_protocol Parametru (1.5.12) indică faptul că toate conexiunile acceptate pe acest port trebuie să utilizeze protocolul PROXY.
Înainte de versiunea 0.8.21 că acestea pot fi specificate numai împreună cu parametrul implicit directiva asculta.
Seturi de configurare în funcție de URI de solicitare.
Pentru comparație este utilizat în cererea URI forma normalizată, după descifrarea textului specificat în forma „% XX“, conversia elementelor de cale relativă. " „Și“. „Pentru înlocuirea efectivă și posibila a două sau mai multe linii oblice consecutive pe una.
locație, puteți specifica un șir de prefix sau o expresie regulată. Expresiile regulate sunt stabilite sau cu modificator "
* „(Pentru a găsi un caz de meci insensibil), sau cu modificator“
„(Sensibil). Pentru a găsi o locație, care corespunde cererii, șir de prefix inițial verificat specificat location'y (prefix location'y). Printre ei este căutat de locație care coincide cu lungimea maximă a unui prefix și memorat. Apoi, testat expresii regulate, în ordinea în care apar în fișierul de configurare. Testarea expresiilor regulate încetează după prima coincidență, iar configurația corespunzătoare utilizată. În cazul în care un meci pentru expresia regulată nu este găsit, se folosește configurația stocată anterior locație prefixul lui.
Blocuri de locație pot fi imbricate, cu unele excepții, așa cum se arată mai jos.
Pentru sistemele de operare care sunt sensibile la majuscule, cum ar fi Cygwin și MacOS, în comparație cu siruri de prefix făcut insensibil (0.7.7). Cu toate acestea, comparația este limitată la numai locale'yami un singur octet.
Expresii regulate pot conține selecție (0.7.40), care pot fi apoi utilizate în alte directive.
În cazul în care lungimea maximă a locației potrivit prefixului specificat modificator „^
„Expresiile regulate nu sunt verificate.
În plus, folosind modificatorul „=“ Puteți specifica o potrivire URI exactă și locație. În cazul în care o căutare cu potrivire exactă se oprește imediat. De exemplu, dacă interogarea „/“ apare frecvent, indicând „locația = /“, poate accelera procesarea acestor cereri au fost mai căuta după prima comparație. Evident, această locație nu poate fi imbricate location'y.
În versiunile 0.7.1 la 0.8.41 pe, în cazul în care interogarea a coincis exact cu location'om prefixul fără modificatori „=“ și „*
“, Căutarea este, de asemenea, încetează imediat și expresii regulate nu sunt verificate.
Ilustrează exemplul de mai sus:
Pentru a solicita un „/“ va fi ales de configurare A pentru interogarea „/index.html“ - configurație B, pentru a solicita „/documents/document.html“ - Configurația pentru interogarea „/images/1.gif“ - configurație D, și pentru „/documents/1.jpg“ de interogare - configurație D.
Prefixul „@“ specifică locația numit. Această locație nu este utilizată în timpul procesării normale de interogare, și doar scopul de a redirecționa-l cere. O astfel de location'y nu pot fi imbricate și nu pot conține location'y imbricate.
Dacă locația este specificat șir de prefix cu un slash la sfârșitul anului, iar cererile sunt procesate cu ajutorul proxy_pass. fastcgi_pass. uwsgi_pass. scgi_pass sau memcached_pass. există un tratament special. Ca răspuns la cererea URI la egal cu acest rând, dar fără o bară oblică este returnat de redirecționare constantă cu cod 301 într-un URI adăugat la capătul unui slash. În cazul în care acest comportament nu este de dorit, puteți specifica exact meci URI și locația, de exemplu:
Primul nume devine numele serverului primar.
Numele de server, puteți utiliza un asterisc ( „*“) pentru a înlocui prima sau ultima parte a numelui:
Aceste nume sunt numite nume cu mască.
Primele două nume dat mai sus pot fi combinate într-o singură:
Ca un nume de server, puteți utiliza, de asemenea, o expresie regulată, care indică să-l tilda ( "
O expresie regulată poate cuprinde o selecție (0.7.40), care pot fi apoi utilizate în alte directive:
Alocarea numit în expresia regulată a crea variabile (0.8.25), care pot fi apoi utilizate în alte directive:
În cazul în care directiva este setat la „$ nume de gazdă“ (0.9.4), apoi înlocuiți numele gazdei (nume de gazdă) al mașinii.
De asemenea, este posibil să specificați un nume de server gol (0.7.11):
Înainte de a 0.8.48 implicit la numele de gazdă (nume de gazdă) al mașinii.
Atunci când căutați un server virtual după nume, în cazul în care numele corespunde câteva dintre aceste opțiuni, de exemplu, în același potrivesc timp și numele măștii, și expresia regulată va selecta prima opțiune potrivită în următoarea ordine de prioritate:
- numele exact
- cel mai lung nume al măștii de la început, cum ar fi „* .example.com“
- cel mai lung nume al măștii la final, cum ar fi „e-mail. *“
- expresia regulată prima potrivire (în ordinea în fișierul de configurare)
Mai multe nume ale serverelor sunt discutate într-un document separat.
server_name_in_redirect pe | off;
Setează dimensiunea maximă a variabilei tabel hash. Mai mult de tuning tabelele hash este discutată într-un document separat.
Înainte de versiunea 1.5.13 valoarea implicită de 512 a fost utilizat.
variabile încorporate
Modulul ngx_http_core_module acceptă variabile încorporate ale căror nume se potrivesc cu numele variabilelor, serverul de web Apache. În primul rând, variabilele, care reprezintă câmpurile de antet cererea clientului, cum ar fi $ HTTP_USER_AGENT. $ HTTP_COOKIE și altele asemenea. În plus, există și alte variabile:
Protocolul PROXY trebuie să fie pre-activat prin setarea parametrului pentru a asculta Directiva proxy_protocol.
portul $ Proxy_protocol_port al clientului primit de protocol antet PROXY sau un șir gol (1.11.0)
Protocolul PROXY trebuie să fie pre-activat prin setarea parametrului pentru a asculta Directiva proxy_protocol.
$ Request_body_file nume de fișier temporar în care să stocheze organismul cerere
La finalizarea procesului de prelucrare este necesară pentru a șterge fișierul. Pentru a solicita organismului este întotdeauna în scris la dosar ar trebui să fie incluse client_body_in_file_only. În cazul transmiterii numele fișierului temporar într-o solicitare aproximat sau să solicite o FastCGI / uwsgi / SCGI-server ar trebui să interzică directivele de transfer proxy_pass_request_body de pe corpul însuși. fastcgi_pass_request_body off. uwsgi_pass_request_body off sau scgi_pass_request_body off respectiv.
$ Numele nume_server de server pentru a accepta portul server de cerere $ SERVER_PORT accepta $ protocol de solicitare de interogare SERVER_PROTOCOL, de obicei "HTTP / 1.0", "HTTP / 1.1" sau "HTTP / 2.0" $ stare de răspuns de stare (1.3.2, 1.2.2) $ time_iso8601 ora locală în formatul conform ISO 8601 (1.3.12, 1.2.7) $ ora locală time_local în format Log Common (1.3.12, 1.2.7) $ tcpinfo_rtt. $ Tcpinfo_rttvar. $ Tcpinfo_snd_cwnd. informații $ Tcpinfo_rcv_space despre client TCP-conexiuni; disponibile pe sistemele care acceptă opțiunea de socket TCP_INFO $ uri curente URI de solicitare într-o formă normalizată
$ Valoarea Uri poate varia în timpul procesării de interogare, de exemplu, pentru interior sau redirecționare folosind fișierele index.