location

Директива `location` определяет, как NGINX должен обрабатывать запросы на основе URI. — NGINX HTTP Core

location
serverlocation
Синтаксисlocation [ = | ~ | ~* | ^~ ] uri { ... }
По умолчаниюnone
Контекстserver, location
МодульNGINX HTTP Core
Аргументыblock (1-2)

Описание

Директива `location` в NGINX используется для определения особой обработки конкретных запрошенных URI или шаблонов URI. Она позволяет применять разные конфигурации в зависимости от части URL, которая следует за именем сервера. Директива может располагаться внутри блока `server` или быть вложена в другой блок `location` для создания более специализированного поведения. При определении `location` можно указывать точные совпадения, префиксы или регулярные выражения. Например, `location /images/` соответствует любому запросу, начинающемуся с `/images/`, в то время как `location = /` соответствует только запросам, направленным к корневому пути. Это означает, что запросы к `/images/logo.png` будут обрабатываться `location /images/`, но не `location = /`. Для более сложных требований к сопоставлению также можно использовать регулярные выражения с модификаторами `~` и `~*`, которые обозначают, соответственно, регистрозависимое и регистронезависимое совпадение. Кроме того, внутри блока `location` можно указывать директивы такие как `proxy_pass`, `rewrite` или любые другие директивы NGINX, относящиеся к обработке HTTP. Такая гибкость обеспечивает детальный контроль над тем, как обрабатываются различные запросы, повышая способность сервера NGINX эффективно и адекватно обслуживать разные типы запросов в зависимости от их URI.

Пример конфига

server {
    listen 80;
    server_name example.com;

    location / {
        root /var/www/html;
        index index.html;
    }

    location /images/ {
        root /var/www/images;
    }
}

Использование неправильно вложенных блоков `location` может привести к непредвиденному поведению.

Неприменение правильного модификатора сопоставления может привести к тому, что нужный блок не будет выбран.

Перекрывающиеся locations без корректной специфичности могут вызвать путаницу при обработке запросов.