22
Апреля
2024
г.
Nginx.location
Содержание
Директива location
определяется в контексте server
их может быть несколько и они могут быть вложенными.
server {
location {
}
location {
}
location {
}
}
Типы location
- Префикс - в блоке нет модификатора, это значит что сравнение идет по url запроса
=
- точное соответствие указанному location и uri~
- регулярное выражение с учетом регистра~*
- регулярное без учета регистра^~
- поиск без регулярного выражения
location / url
// = При нахождениие url дальше поиск идти не будет
= / /
= /test /test
= /test/test-123-678/.file/try /test/test-123-678/.file/try
// Префикс
/ /
/ /4
/ /4/123/test/777/
/site /site
/site /site/rwqrewr/124124/13241424
^~ ищет по точному соответствию,без регулярного выражения, при этом дальнейший поиск останавливается
^~ /site/ /site/123/jghjhgjhgj
^~ /c /с
~* - регулярное выражение без учета регистра
~* \.(png|ico|gif|jpg|jpeg)$ .png
~* \.(png|ico|gif|jpg|jpeg)$ .PNG
~* \.(png|ico|gif|jpg|jpeg)$ .PnG
~ - регулярное выражение с учетом регистра
~ \.(jpe?g|png|gif|ico)$ .jpeg
~ \.(PNG)$ .PNG
~ \.[1-9]$ .7
~ \.php$ /file.php
Выбор блока location
Алгоритм действий nginx:
- Проверка всех префиксных блоков и сравнение их с текущим url
- Поиск точного совпадения с =
- Далее ищет префикс ^~
- Далее идет расчет регулярных выражений
location нельзя дублировать в рамках одного виртуального хоста.
Возник вопрос или предложение пиши на почту
alexsey_89@bk.ru или в
Телеграмм канал
Дата публикации: 22
Апреля
2024
г.