Примеры директивы location в Nginx

Полезным инструментом для управления обработкой нескольких типов запросов является директива location в Nginx. Указание правил в директиве location позволяет применять определённые настройки, перенаправлять запросы в разные области вашего приложения или полностью отклонять некоторые запросы. С помощью директивы location в Nginx вы можете эффективно управлять запросами, что важно для повышения производительности, безопасности и функциональности веб-приложений.
Базовый Синтаксис директивы location в Nginx
Директива location в Nginx определяется в файле конфигурации nginx.conf. Ниже вы можете увидеть её базовый синтаксис:
location [modifier] uri { ... }
modifier: необязательный параметр, определяющий тип соответствия (например,exact,prefix,regex).uri: URI, который должен быть сопоставлен.- Внутри фигурных скобок можно задать различные параметры и инструкции (например,
proxy_pass,root,index).
Пример точного Совпадения
Точное совпадение происходит, когда запрошенный URI точно соответствует указанной строке.
location = /exact-match {
root /var/www/html;
index index.html;
}
В этом примере блок location будет обрабатывать только запросы к /exact-match.
Вы также можете включить условие с помощью оператора if. Имейте в виду, что в Nginx нет прямого аналога обычного оператора if-else, который используется в различных языках программирования. Однако аналогичную функциональность можно получить, объединив несколько операторов if с другими директивами для имитации условного перехода.
location = /exact-match {
root /var/www/html;
index index.html;
if ($http_user_agent ~* "Chrome") {
add_header X-Browser "Chrome";
}
}
В этом случае, если пользовательский агент идентифицируется как Chrome, ответ будет содержать дополнительный заголовок X-Browser.
Пример соответствия префикса
Префиксное соответствие — наиболее распространённый тип, который соответствует любому URI, начинающемуся с указанной строки.
location /prefix {
root /var/www/html;
index index.html;
if ($request_method = POST) {
return 405; # Метод, который не разрешен
}
}
Этот блок location будет обрабатывать любой запрос, начинающийся с /prefix — например, /prefix/page1 или /prefix/page2. Если метод запроса — POST, Nginx возвращает статус 405 Method Not Allowed.
Пример соответствия регулярному выражению
Для более сложных сценариев сопоставления полезны регулярные выражения. В Nginx регулярное выражение может содержать подстановочные знаки — символы, которые соответствуют любому символу или группе символов. Наиболее распространённые подстановочные знаки в регулярных выражениях Nginx:
.: Соответствует любому отдельному символу..*: Соответствует любой последовательности символов (включая отсутствие символов).^: Соответствует началу строки.$: Соответствует концу строки.
Редактор: AndreyEx