location
Директива `location` определяет, как NGINX должен обрабатывать запросы на основе URI.
Описание
Директива 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 без корректной специфичности могут вызвать путаницу при обработке запросов.