Навигация
|
Серия по nginx статья 2Серия по nginx статья 2
Nginx внутри виртуального хоста определяет логику обработки запроса
Пример URI: http://a.test/path/test.php?arg1=a&arg2=b
http - протокол
a.test - адрес хоста
path/test.php - запрос
arg1=a&arg2=b - аргументы запроса
Логика разбора запроса определяется location, которые могут иметь или не иметь модификаторов
Если у нескольких location отсутствуют модификаторы, nginx ищет лучшее совпадение
Модификатор "=" - точного соответствия, используется для точного совпадения с запросом
При совпадении запроса с location с модификатором "=" дальнейший поиск останавливается
Nginx сразу начинает обрабатывать запрос, не пытаясь сопоставить его с другими location
Regexp (регулярные выражения) модификаторы, имеют приоритет перед location без модификаторов
Модификатор "~" - регистрозависимое регулярное выражение
Модификатор "~*" - регистроНЕзависимое регулярное выражение
Модификатор "^~" - не проверять regexp location в случае совпадения
Далее пример, где в комментариях # оставлены примеры совпадущих запросов
\. и $ - спецсиволы, см. документацию по регулярным выражениям
Их задача в данной статье выделить расширение php или указать окончание - "$"
a.test.conf:
server {
listen 80;
server_name a.test;
location = / { return 200 "location 1\n"; }
# curl -D - http://a.test
location = /path/test.html { return 200 "location 2\n"; }
# curl -D - http://a.test/path/test.html
location /path { return 200 "location 3\n"; }
# curl -D - http://a.test/path
# curl -D - http://a.test/path/tes.html
location /path/test { return 200 "location 4\n"; }
# curl -D - http://a.test/path/test
# curl -D - http://a.test/path/tester.html
location ~ \.pHp { return 200 "location 5\n"; }
# curl -D - http://a.test/path/doc.pHp
# curl -D - http://a.test/path/doc.pHp?arg1=a&arg2=b
location ~* \.pHp$ { return 200 "location 6\n"; }
# curl -D - http://a.test/path/doc.php
# curl -D - http://a.test/path/test.php?arg1=a&arg2=b
location ^~ /path/test.pHp { return 200 "location 7\n"; }
# curl -D - http://a.test/path/test.pHp
# curl -D - http://a.test/path/test.pHp?arg1=a&arg2=b
}
Комментарии пользователей Эту новость ещё не комментировалиНаписать комментарий Анонимам нельзя оставоять комментарии, зарегистрируйтесь! |
Контакты Группа ВК | Код обмена баннерами | Видео к IT статьям на YoutubeВидео на другие темы Смотреть | |||
Мои друзья: | © Snakeproject.ru создан в 2013 году.При копировании материала с сайта - оставьте ссылку.Весь материал на сайте носит ознакомительный характер,за его использование другими людьми, автор ответственности не несет. |
||||
Поддержать автора и проект
|