модул ngx_http_core_module

Активира или деактивира файл асинхронни IO (AIO), в FreeBSD и Linux:

В FreeBSD AIO може да се използва, като се започне с FreeBSD 4.3. Преди FreeBSD 11.0 AIO могат или да бъдат събрани в ядрото статично:

или зареден динамично чрез натоварваща модул на ядрото:

Може да се използва в Linux AIO само от версия 2.6.22 на ядрото. Освен това, вие също трябва да се добави directio. в противен случай четене ще бъде инхибиран:

Докато включване и AIO на Linux sendfile за файлове, които са по-големи от или равен на определения в директивата за directio. Ще се използва AIO, но за по-малки файлове или изключване directio - sendfile.

операции за четене или изпращане на файлове ще бъдат лекувани с поток от посочения басейна. Ако басейна на конеца не е изрично използват басейна с името "по подразбиране". Името на басейн може да се настрои с помощта на променливи:

подкрепа подразбиране резби не е активиран, той трябва да бъде позволено да се изгради с помощта на конфигурация опция --with-нишки. В момента, многонишково е съвместим единствено с методи epoll. kqueue и eventport. Изпращане на файлове в многонишков режим се поддържат само на Linux.

HTTP. сървър. местоположение

Тази директива се появи във версия 1.1.15.

Тази директива е достъпно само на системи, които имат openat интерфейси () и fstatat (). Такива системи са модерни версии на FreeBSD, Linux и Solaris.

Параметри на и if_not_owner изискват допълнителни разходи за преработка.

HTTP. сървър. местоположение. ако в населено място

Задава URI, който ще бъде показан за тези грешки. Неуспех стойност може да използвате променливи.

Когато това е направено за вътрешно пренасочване каза URI. и метод желание на клиента се променя на "GET" (за всички методи, различни от "да" и "HEAD").

Освен това е възможно да се промени кода на отговора на другата, като се използва синтаксиса на формата "отговор =", например:

Ако отговор грешка се обработва от прокси или FastCGI / uwsgi / SCGI сървър и сървър може да се върне на различни кодове на отговор като 200, 302, 401 или 404, е възможно да им се даде кода на връщане:

Ако вътрешният пренасочването не е нужно да се промени URI и метода, е възможно да се премине грешка при обработката на име местоположението:

Ако възникне грешка URI обработка, клиентът връща отговор на последния случай, кодът за грешка.

Възможно е също така да се използва за пренасочване URL работа грешка:

В този случай, по подразбиране на клиента се връща кода на отговора 302. Можете да промените само един от кодовете на отговор, отнасящи се до пренасочване (301, 302, 303, 307 и 308).

Директивите са наследени от предишното ниво с уговорката, че на това ниво не са описани техните директива error_page.

Ако актове lingering_close. Тази директива определя максималното време да чака допълнителни данни от клиента. Ако данните не е получена, връзката е затворена през това време. В противен случай, данните се четат и пренебрегнати, и Nginx отново очаква получаване на данни. Цикълът на "изчакване за четене игнорира" повтаря, но не по-дълъг от определения директива lingering_time.

UNIX-гнезда (0.8.21) се определят с префикс "UNIX":

Ако не е посочен в директивата, които се използват или * 80. Ако Nginx работи с суперпотребител привилегии, или * 8000.

Преди версия 0.8.21, тази опция се нарича по подразбиране.

Параметър SSL (0.7.14) показва, че всички връзки се приема за тази порт трябва да работят в SSL режим. Това дава възможност за по-компактна конфигурация за сървъра работи в два режима - HTTP и HTTPS.

Параметър http2 (1.9.5) ви позволява да поеме този порт HTTP / 2 -връзка. Обикновено, за да работи, трябва да се посочва и параметър SSL. Nginx, но може също да бъде конфигуриран на HTTP / 2 връзки без SSL техника.

Параметър SPDY (1.3.15-1.9.4) ви позволява да поеме този порт SPDY -връзка. Обикновено, за да работи, трябва да се посочва и параметър SSL. но можете да конфигурирате Nginx и приемни SPDY-връзки, без SSL.

Параметър proxy_protocol (1.5.12) показва, че всички връзки се приема за тази порт трябва да използват прокси протокол.

Преди версия 0.8.21, че те могат да бъдат определени само в комбинация с параметъра слушате директива подразбиране.

Задава конфигурация в зависимост от искането URI.

За сравнение се използва в заявката URI нормализирана форма, след декодиране на текста, посочен в форма "% XX", превръщането на относителните елементи на пътя. " "А". "За актуална и възможностите за заместване на две или повече последователни черти на един.

местоположение, можете да зададете префикс низ или регулярен израз. Регулярните изрази са определени или с модификатора "

* "(За да се намери случай мач нечувствителен), или с модификатора"

"(Малки и големи букви). За да намерите място, което отговаря на искането, първоначално проверени location'y определен префикс низ (префикс location'y). Сред тях се търси място съвпада с максималната дължина на префикс и запомнени. Тогава тестван регулярни изрази, в реда, в който се появи в конфигурационния файл. Тестване на регулярните изрази се прекратява след първото съвпадение, и се използва съответната конфигурация. Ако не се намери един мач от регулярния израз, тя използва конфигурацията се съхранява по-рано префикс място е.

Блокове място могат да бъдат вложени, с някои изключения, както е описано по-долу.

За операционни системи, които са малки и главни букви, като MacOS и Cygwin, в сравнение с префикс струни, направени нечувствителен (0.7.7). Въпреки това, сравнението е ограничена до само еднобайтовата locale'yami.

Регулярни изрази могат да съдържат избор (0.7.40), който може да се използва в други директиви.

Ако максималната дължина на съвпадение префикс посочено модификатор на местоположението "^

"Това, че регулярните изрази не са проверени.

Освен това, с помощта на модификатора "=" Можете да определите точно съвпадение URI и местоположение. Ако точно търсене мач спира веднага. Например, ако заявката "/" се появява често, което показва "място = /", може да се ускори обработката на тези искания са били спирка търсите след първата сравнението. Очевидно е, че това място не може да бъде вложен location'y.

В версии 0.7.1 до 0.8.41 на това, ако точно на заявката съвпадна с location'om префикс без модификатори "=" и "*

"Търсенето също се прекратява незабавно и регулярни изрази не са проверени.

Илюстрират по-горе пример:

За да заявите "/" ще бъде избран на конфигурацията, за заявката "/index.html" - конфигурация Б, за да поискате "/documents/document.html" - Конфигурацията на заявката "/images/1.gif" - конфигурация D, и за "/documents/1.jpg" заявка - конфигурация D.

Представката "@" посочва име местоположение. Това място не се използва по време на нормална обработка на заявката, и са предназначени само за пренасочване не поиска това. Такова location'y не могат да бъдат вложени и не може да съдържа загнездена location'y.

Ако местоположението е посочено префикс низ с наклонена черта в края и се обработват по заявка, използвайки proxy_pass. fastcgi_pass. uwsgi_pass. scgi_pass или memcached_pass. има специално отношение. В отговор на искането URI за да изплатите този ред, но без наклонена черта се връща пренасочване постоянно с код 301 в URI добавя към края на наклонена черта. Ако това поведение е нежелано, можете да посочите точен URI и местоположение мача, като например:

Първото име се превръща името на първичния сървър.

Имената на сървъри, които можете да използвате звездичка ( "*"), за да замени първата или последната част от името:

Тези имена са наречени имена с маска.

Първите две горе даденото име могат да бъдат комбинирани в един:

Както името на сървъра, можете да използвате и регулярен израз, което показва, за да го тилда ( "

Редовната експресия може да включва избор (0.7.40), който може да се използва в други директиви:

Кръстен разпределение в регулярния израз създаде променливи (0.8.25), които могат след това да се използват в други директиви:

Ако директивата е настроен на "$ име на хост" (0.9.4), след което да замени името на хоста (хост) на машината.

Възможно е също така да се уточни празно име на сървър (0.7.11):

Преди 0.8.48 подразбиране за името на хоста (хост) на машината.

При търсене на виртуален сървър по име, ако името отговаря на някои от тези опции, например, по едно и също време за квалификация и името на маската, а регулярния израз ще изберете първия подходящ вариант в следния ред на приоритет:

  1. точното име
  2. най-дългото име на маската в началото, като "* .example.com"
  3. най-дългото име на маската в края, като "поща. *"
  4. първото съвпадение на регулярния израз (в реда, в конфигурационния файл)

Още имена на сървърите са разгледани в отделен документ.

server_name_in_redirect на | разстояние;

Задава максималния размер на променливата на хеш-таблица. Още при съгласуване на хеш таблици се обсъжда в отделен документ.

Преди версия 1.5.13 стойност по подразбиране от 512 е бил използван.

вградени променливи

ngx_http_core_module модул поддържа вградени променливи, чиито имена съвпадат с имената на променливи, уеб сървъра Apache. На първо място, променливите, които представляват полета желание на клиента, като заглавни $ HTTP_USER_AGENT. $ HTTP_COOKIE и други подобни. В допълнение, има и други променливи:

PROXY протокол трябва да бъде предварително разрешена чрез задаване на параметъра да слушате директива proxy_protocol.

$ Proxy_protocol_port порт на клиента, получени от протокола глава пълномощник или празен низ (1.11.0)

PROXY протокол трябва да бъде предварително разрешена чрез задаване на параметъра да слушате директива proxy_protocol.

$ Request_body_file име временен файл, в който да се съхранява тялото на заявка

При завършване на обработването е необходимо, за да изтриете файла. С цел да се поиска от органа, винаги се записва файла трябва да бъдат включени client_body_in_file_only. При предаване на името на временен файл в прокси заявка или заявка за FastCGI / uwsgi / SCGI-сървър трябва да се забрани директивите на трансфер proxy_pass_request_body от самия орган. fastcgi_pass_request_body изключен. uwsgi_pass_request_body разстояние или scgi_pass_request_body разстояние съответно.

$ Името на server_name на сървъра, за да приемете сървъра порта искане $ server_port приемане $ протокол заявка заявка server_protocol, обикновено "HTTP / 1.0", "HTTP / 1.1" или "HTTP / 2.0" статут отговор статус $ (1.3.2, 1.2.2) $ time_iso8601 местно време във формата, в съответствие с ISO 8601 (1.3.12, 1.2.7) $ time_local местно време в Общата формат Вход (1.3.12, 1.2.7) $ tcpinfo_rtt. $ Tcpinfo_rttvar. $ Tcpinfo_snd_cwnd. $ Tcpinfo_rcv_space информация за клиента TCP свързвания; достъпно на системи, които поддържат опция гнездо TCP_INFO $ URI текущата заявка URI в нормализирана форма

$ Стойност Юри може да варира по време на обработката на заявката, например за вътрешно или пренасочване използване файловете на индекса.