Вступ

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 для оптимальної роботи ваших веб-додатків.

Від ittutorials

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *