Вступ
NGINX — це популярний веб-сервер та зворотній проксі-сервер, який використовується для обробки HTTP-запитів, балансування навантаження та забезпечення безпеки веб-додатків. Одним з ключових елементів конфігурації NGINX є директива location
, яка дозволяє визначати правила обробки запитів до серверу. У цій статті розглянемо, що таке директива location
, як вона використовується та наведемо кілька прикладів її застосування.
Як встановити nginx на вашому сервері Ubuntu 22.04 та налаштувати фаєрвол ми розглядали в ось цій публікації.
Що таке директива location?
Директива location
в NGINX використовується для визначення правил, які вказують серверу, як обробляти вхідні HTTP-запити в залежності від URL-шляху. Ця директива є частиною блоку server
, і вона дозволяє виконувати різні дії з запитом: перенаправляти його, передавати на інший сервер, або обробляти безпосередньо на сервері.
Синтаксис директиви location
Директива location
має наступний загальний синтаксис:
location [modificator] path {
# правила обробки запиту
}
- Модифікатор (необов’язковий) — визначає, як саме порівнюється шлях з URL. Існують кілька типів модифікаторів:
=
— точне співпадіння URL.^~
— пріоритетне співпадіння з початком URL~
— регулярний вираз, чутливий до регістру.~*
— регулярний вираз, нечутливий до регістру.- Без модифікатора — пріоритет надається найдовшому співпаданню з початком URL.
- Шлях — це URL або шаблон, з яким порівнюється вхідний запит.
Приклади використання location
Розглянемо кілька прикладів використання директиви location
:
Точне співпадіння URL
location = /about {
return 200 "About us page";
}
В цьому прикладі, якщо користувач звертається за URL /about
, сервер поверне відповідь з кодом 200 та текстом “About us page”.
Пріоритетне співпадіння з початком URL
location ^~ /static/ {
root /var/www/static;
}
В цьому випадку, всі запити, які починаються з /static/
, будуть оброблятися зі шляху /var/www/static
.
Регулярний вираз (чутливий до регістру)
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
Цей приклад показує, як всі запити, що закінчуються на .php
, передаються на FastCGI-сервер для обробки.
Регулярний вираз (нечутливий до регістру)
location ~* \.(jpg|jpeg|png|gif|ico)$ {
expires 30d;
}
Тут всі зображення з розширеннями .jpg
, .jpeg
, .png
, .gif
, та .ico
будуть кешуватись на 30 днів.
Висновок
Директива location
є потужним інструментом конфігурації NGINX, який дозволяє тонко налаштовувати обробку запитів на веб-сервері. Завдяки можливості використовувати різні модифікатори та регулярні вирази, location
надає велику гнучкість і дозволяє легко адаптувати сервер під різноманітні задачі. Розуміння принципів роботи цієї директиви допоможе налаштувати NGINX для оптимальної роботи ваших веб-додатків.