Як перенаправляти URL-адреси за допомогою NGINX ⋆ ALexHost SRL

Перевірте свої навички на всіх наших хостингових послугах та отримайте знижку 15%!

Використовуйте код під час оформлення замовлення:

Skills
27.11.2024

Як перенаправляти URL-адреси за допомогою NGINX

Ефективне управління веб-трафіком починається з безпечного та надійного хостингового рішення. Виділені сервери AlexHost забезпечують ідеальне середовище для запуску NGINX та налаштування надійних правил перенаправлення URL-адрес. Завдяки високій продуктивності, повному кореневому доступу та безпеці корпоративного рівня, AlexHost гарантує безперебійну роботу вашого веб-сервера, незалежно від того, чи ви мігруєте домени, чи впроваджуєте HTTPS, чи оптимізуєте потік трафіку.

Перенаправлення URL-адрес є важливим інструментом для управління веб-трафіком, покращення користувацького досвіду та забезпечення дотримання найкращих практик SEO. Незалежно від того, чи ви переносите веб-сайт, реструктуризуєте контент або просто виправляєте непрацюючі посилання, перенаправлення URL-адрес гарантує, що користувачі та пошукові системи потрапляють у потрібне місце. У цій статті ми розглянемо, як перенаправляти URL-адреси за допомогою NGINX, одного з найпоширеніших веб-серверів на сьогоднішній день.

Розуміння перенаправлення URL-адрес

Перш ніж зануритися в технічні аспекти, давайте коротко пояснимо, що таке перенаправлення URL-адрес і чому воно важливе. Перенаправлення URL-адреси – це спосіб перенаправлення однієї URL-адреси на іншу. Це гарантує, що користувачі, які відвідують стару URL-адресу, автоматично перенаправляються на нову, не стикаючись з помилкою 404. Існують різні типи перенаправлень, зокрема

  1. 301 Постійне перенаправлення – вказує на те, що URL-адреса була переміщена назавжди.
  2. 302 Тимчасове перенаправлення – вказує на тимчасове переміщення URL-адреси.
  3. 307 Тимчасове перенаправлення – більш специфічна версія 302, яка використовується в деяких випадках.
  4. 308 Постійне перенаправлення – схоже на 301, але зберігає метод запиту (наприклад, POST) під час перенаправлення.

NGINX, з його простими конфігураційними файлами і високою продуктивністю, є чудовим інструментом для ефективного управління перенаправленнями.

Необхідні умови

Перш ніж приступити до перенаправлення URL-адрес за допомогою NGINX, вам знадобиться наступне:

  • NGINX встановлений і запущений на вашому сервері
  • Привілеї root або sudo на сервері
  • Базове розуміння конфігураційних файлів NGINX
  • Встановлений текстовий редактор, наприклад,
    nano
    або
    vim

Крок 1: Доступ до конфігураційних файлів NGINX

Першим кроком є доступ до конфігураційного файлу NGINX, в якому визначено блоки вашого сервера, та його модифікація. Залежно від вашої системи, конфігураційні файли NGINX зазвичай зберігаються в різних місцях:

  • /etc/nginx/nginx.conf (основна конфігурація)
  • /etc/nginx/sites-available/default (конфігурації конкретних сайтів)

Щоб відредагувати конфігураційний файл для конкретного сайту, скористайтеся наступною командою:

sudo nano /etc/nginx/sites-available/default

Вона відкриє файл конфігурації сайту за замовчуванням в текстовому редакторі

nano
. Ви також можете вказати файл конфігурації для конкретного сайту, розміщеного на вашому сервері.

Крок 2: Базове перенаправлення за допомогою директиви
return

Одним з найпростіших способів перенаправлення URL-адреси в NGINX є використання директиви

return
. Ось базовий приклад того, як реалізувати 301 (постійний) редирект для однієї сторінки:

server {
listen 80;
ім'я_сервера www.old-site.com;
location /old-page {
return 301 http://www.new-site.com/new-page;
}
}

Ця конфігурація прослуховує запити на порту 80 (HTTP) і перевіряє наявність URL-адреси

/old-page
. Коли користувач відвідує цю URL-адресу, він буде постійно перенаправлений на
http://www.new-site.com/new-page.

Крок 3: Використання директиви
rewrite
для розширених перенаправлень

Для більш складних сценаріїв перенаправлення, директива

rewrite
в NGINX може бути надзвичайно корисною. Вона дозволяє зіставляти шаблони URL-адрес за допомогою регулярних виразів і трансформувати їх за потреби.

Приклад: Перенаправлення всіх сторінок на новий домен

Якщо ви перемістили весь сайт на новий домен і хочете перенаправити весь трафік, скористайтеся наступною конфігурацією:

server {
listen 80;
ім'я_сервера www.old-site.com;
rewrite ^(.*)$ http://www.new-site.com$1 permanent;
}

Тут директива

rewrite
приймає будь-який вхідний запит
(.*)
і додає його до нового домену
$1
, після чого виконується постійний редирект 301. Це гарантує, що всі сторінки старого сайту будуть вказувати на відповідні сторінки нового сайту.

Приклад: Перенаправлення з HTTP на HTTPS

З метою безпеки рекомендується перенаправляти весь HTTP-трафік на HTTPS. Ви можете легко досягти цього за допомогою наступної конфігурації:

server {
listen 80;
ім'я_сервера www.example.com;
return 301 https://$ім’я_сервера$request_uri;
}

Ця директива гарантує, що будь-який запит до сайту по HTTP буде постійно перенаправлений на HTTPS. Змінна

$server_name
автоматично заповнює ваш домен, а
$request_uri
зберігає шлях і рядок запиту.

Крок 4: Умовні перенаправлення

NGINX також дозволяє створювати умовні перенаправлення на основі таких факторів, як агенти користувача, файли cookie або IP-адреси. Ось приклад того, як перенаправляти користувачів на основі їх агента користувача (наприклад, перенаправлення мобільних користувачів на мобільну версію сайту):

if ($http_user_agent ~* "(Android|iPhone|iPad)") {
переписати ^/$ http://m.example.com перенаправлення;
}

У цьому прикладі, якщо агент користувача містить рядок “Android”, “iPhone” або “iPad”, користувач буде перенаправлений на мобільну версію сайту.

Крок 5: Тестування конфігурації

Після внесення змін до конфігурації NGINX важливо перевірити їх на наявність синтаксичних помилок перед перезапуском сервера. Для перевірки конфігурації скористайтеся наступною командою:

sudo nginx -t

Якщо перевірка пройшла успішно, ви побачите повідомлення на кшталт

nginx: перевірка конфігураційного файлу /etc/nginx/nginx.conf пройдена успішно

Крок 6: Перезавантажте NGINX

Після того, як ваша конфігурація буде перевірена, застосуйте зміни, перезавантаживши NGINX:

sudo systemctl перезавантажити nginx

Це дозволить плавно перезавантажити службу NGINX і застосувати ваші нові правила перенаправлення, не перериваючи активних з’єднань.

Крок 7: Моніторинг та налагодження

Важливо стежити за журналами NGINX, щоб переконатися, що ваші правила перенаправлення працюють належним чином. Файли журналів зазвичай знаходяться в:

  • /var/log/nginx/access.log – містить детальну інформацію про кожен запит.
  • /var/log/nginx/error.log – Тут реєструються всі помилки, що виникають.

Якщо ваше перенаправлення не працює належним чином, ці журнали можуть допомогти вам виявити будь-які проблеми.

Поширені випадки використання перенаправлення URL-адрес

Ось кілька поширених сценаріїв, в яких перенаправлення URL-адрес може бути корисним:

  1. Переїзд на новий домен: Перенаправте всі URL-адреси зі старого домену на новий, щоб зберегти трафік і SEO-рейтинг.
  2. Зміна структури URL-адреси: Перенаправте старі URL-адреси на нові після реструктуризації вашого сайту, щоб уникнути помилок 404.
  3. Впровадження HTTPS: перенаправлення всіх HTTP-запитів на HTTPS для підвищення безпеки та довіри.
  4. Перенаправлення на певну сторінку: Перенаправлення трафіку з однієї сторінки на іншу, якщо початкова сторінка застаріла або переміщена.

Висновок

Перенаправлення URL-адрес за допомогою NGINX – це потужний інструмент для управління веб-трафіком і забезпечення безперебійної роботи користувачів. Незалежно від того, чи ви переносите сайт, впроваджуєте HTTPS або реструктуризуєте URL-адреси, NGINX дозволяє легко налаштовувати і керувати перенаправленнями. Дотримуючись цього посібника, ви зможете налаштувати прості та розширені правила перенаправлення URL-адрес, гарантуючи, що і користувачі, і пошукові системи будуть направлені в потрібне місце.

Перевірте свої навички на всіх наших хостингових послугах та отримайте знижку 15%!

Використовуйте код під час оформлення замовлення:

Skills