Дабы не возвращаться к вниканию в официальную документацию, закреплю основные моменты конфигурирования nginx.
Синтаксис директивы location:
location [ = | ~ | ~* | ^~ ] uri { ... }
Порядок проверки директив location:
- = точное совпадение ссылки, поиск прекращается
- ^~ строки без регулярных выражений, поиск прекращается
- поиск подходящей регулярки, сначала на максимальное совпадение, затем по порядку в файле конфигурации (если 2 одинаковых, работает с верхним)
- ~ совпадение с учетом регистра
- ~* совпадение без учета регистра
- если подходит под регулярку — п3, иначе п2
Пример:
location = / { # попадет только / запрос в корень. [ конфигурация A ] } location / { # попадут любые запросы, но сначала проверятся ниже [ конфигурация B ] } location /documents/ { # попадут все запросы, начинающиеся на /documents/, # продолжится проверка на регулярки. Обработается, только # если не будет подходящих регулярок [ конфигурация C ] } location ^~ /images/ { # попадут все запросы с началом на /images/, # поиск прекратится [ конфигурация D ] } location ~* \.(gif|jpg|jpeg)$ { # попадут все запросы с окончанием на gif, jpg, jpeg. Но, запросы # с началом на /images/ сюда уже не попадут [ конфигурация E ] }
Примеры запросов:
/ | конфигурация A |
/index.html | конфигурация B |
/documents/document.html | конфигурация C |
/images/1.gif | конфигурация D |
/documents/1.jpg | конфигурация E |
Ссылки: