nginx:location

location

Вначале проверяются location'ы, заданные префиксными строками (префиксные location'ы). Среди них ищется максимальное совпадение. Затем проверяются регулярные выражения, в порядке их следования в конфигурационном файле. Проверка регулярных выражений прекращается после первого же совпадения, и используется соответствующая конфигурация. Если совпадение с регулярным выражением не найдено, то используется конфигурация максимально совпавшего префиксного location'а.

Группа 1 (допускаются вложенные locations)

О Повторяющихся локейшинах nginx сообщит в логах.

  • location = /dir/
  • location ^~ /dir/
  • root /var/www - файлы будут искаться в /var/www/dir
  • alias /var/www - файлы будут искаться в /var/www
location /i/ {
  location ~* ^/i/(.)(.+\.gif)$ {
      alias  /images/$1$1$2;
  }
  return 404;
}

Группа 2

  • location ~ \.php$
  • location ~* \.php$ # (без учета регистра)
  • root /([a-z])
  • alias - /$1.img

Группа 3

Используется в rewrite

  • location @php

Подробно

  • = Точное соотвествие (Не имеет вложений)
  • ~ Регулярные выражения (с учётом регистра)
  • ~* Регулярные выражения (без учета регистра)
  • ^~ (Не имеет вложений)
  • @имя - именованный location (только для перенаправления в него запросов) (Не имеет вложений)
  • uri (совпадение с uri)

Примеры:

  • location = / {...}
  • location / {...}
  • location ^~ /images/ {...}
  • location ~* \.(gif|jpg|jpeg)$ {...}
  • location @rewrite {...}

Типичные ошибки

Если есть возможно, лучше не использовать

  • if - !!!при положительных ответах, будет отработан только последний
  • break
  • rewrite
  • nginx/location.txt
  • Последнее изменение: 2015/08/30 23:47
  • (внешнее изменение)