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