Мы кратко объясним примеры регулярных выражений местоположения Nginx в этой статье.
Предпосылки
В этой статье предполагается, что Nginx уже установлен в вашей системе.
Синтаксис директивы Nginx location
Для каталога расположения в файле конфигурации Nginx доступен следующий синтаксис:
местоположение [модификатор] [URL-соответствие]…
Блок местоположения Nginx может быть добавлен в серверный блок или в другое местоположение с некоторыми предопределенными условиями. В приведенном выше синтаксисе модификатор является необязательным параметром. Наличие модификаторов в блоке местоположения позволяет Nginx обрабатывать URL в другом порядке. Здесь несколько модификаторов упоминаются ниже с некоторыми примерами:
1. Сопоставление всего запроса с блоком местоположения Nginx
'/' Используется для префикса местоположения, чтобы соответствовать всем запросам. Однако, если не найдено лучших совпадений, он будет использован в качестве последнего результата.
Пример
В следующем блоке местоположения он будет соответствовать всем запросам:
2. Каталог сопоставлений с использованием блока местоположения в Nginx
Следующий пример будет соответствовать любому запросу в блоке местоположения, который начинается с / images /. Следовательно, поиск более конкретного согласованного блока по запрошенному URI. Однако, если Nginx не ищет более конкретного совпадения, блок местоположения будет выбран напрямую.
Пример
В приведенном ниже примере Nginx будет соответствовать любому запросу в блоке местоположения, который начинается с / images /.
3. Точное совпадение с использованием модификатора местоположения '=' (равно)
Модификатор '=' знак равенства используется, когда вы точно соответствуете блоку местоположения запрошенному URI.
Пример
Nginx сначала пытается сопоставить наиболее конкретные местоположения префиксов. Однако в следующем примере модификатор '=' в блоке местоположения будет точно соответствовать запрошенному пути префикса, а затем прекратит поиск лучших совпадений.
…
В вышеупомянутом примере блока местоположения модификатор местоположения '=' будет точно соответствовать URL-адресу mydomain.com / imgs. URL-адреса mydomain / imgs / index.html 'или' mydomain / imgs / 'не будет соответствовать условию.
4. Соответствие Regex с учетом регистра с использованием модификатора Tilda (~)
Модификатор tilda (~) выполняет поиск совпадений регулярного выражения с учетом регистра по запрошенному URI и непрерывно ищет лучшее совпадение.
Пример
Модификатор ~ в следующем примере выполняет сопоставление регулярного выражения (регулярного выражения) с учетом регистра в блоке местоположения:
…
5. Соответствие без учета регистра с использованием модификатора tilda (~ *)
Знак тильды с модификатором звездочка (~ *) соответствует любому (без учета регистра) запросу в следующем блоке местоположения, который заканчивается определенным форматом файла, например файлом, заканчивающимся на png, gif, ico, jpeg, jpg, css или js. Однако любые запросы, отправленные в папку / imgs /, будут обрабатываться предыдущим блоком местоположения.
Пример
В следующем блоке расположения он будет соответствовать всем типам файлов без учета регистра.
…
6. Модификатор знака каретки и тильды (^ ~) для совпадения с регулярным выражением
Модификатор caret-tilda (^ ~) используется для выполнения сопоставления регулярного выражения с учетом регистра с запрошенным URL-адресом. Следовательно, если соответствующий URI будет совпадать в / imgs или / imgs / pico.png, он прекращает поиск, чтобы найти лучшее совпадение.
location ^ ~ / imgs…
Заключение
Мы обсудили несколько примеров и важные детали о директиве Nginx location с регулярным выражением. Мы также упомянули использование модификаторов с примерами в этой статье. Надеюсь, эта статья поможет вам понять основную концепцию блоков локации в NGINX. Спасибо!