Jak przekierować adresy URL za pomocą NGINX ⋆ ALexHost SRL

Sprawdź swoje umiejętności we wszystkich naszych usługach hostingowych i otrzymaj 15% zniżki!

Użyj kodu przy kasie:

Skills
27.11.2024

Jak przekierować adresy URL za pomocą NGINX

Skuteczne zarządzanie ruchem internetowym zaczyna się od bezpiecznego i niezawodnego rozwiązania hostingowego. Serwery dedykowane AlexHost zapewniają idealne środowisko do uruchamiania NGINX i konfigurowania solidnych reguł przekierowania adresów URL. Dzięki wysokiej wydajności, pełnemu dostępowi do roota i bezpieczeństwu na poziomie korporacyjnym, AlexHost zapewnia płynne działanie serwera WWW, niezależnie od tego, czy migrujesz domeny, wymuszasz HTTPS, czy optymalizujesz przepływ ruchu.

Przekierowanie adresu URL jest kluczowym narzędziem do zarządzania ruchem internetowym, poprawy komfortu użytkowania i zapewnienia zgodności z najlepszymi praktykami SEO. Niezależnie od tego, czy migrujesz witrynę, restrukturyzujesz zawartość, czy po prostu naprawiasz niedziałające linki, przekierowanie adresów URL zapewnia, że użytkownicy i wyszukiwarki są wysyłane do właściwej lokalizacji. W tym artykule zbadamy, jak przekierowywać adresy URL za pomocą NGINX, jednego z najczęściej używanych obecnie serwerów internetowych.

Zrozumienie przekierowania adresów URL

Zanim zagłębimy się w aspekty techniczne, krótko nakreślmy, czym jest przekierowanie adresu URL i dlaczego jest ważne. Przekierowanie adresu URL to sposób na przekierowanie jednego adresu URL na inny. Zapewnia to, że użytkownicy odwiedzający stary adres URL są automatycznie wysyłani do nowego bez napotkania błędu 404. Istnieją różne rodzaje przekierowań, w tym:

  1. 301 Stałe przekierowanie – wskazuje, że adres URL został przeniesiony na stałe.
  2. 302 Tymczasowe przekierowanie – wskazuje, że adres URL został tymczasowo przeniesiony.
  3. 307 Tymczasowe przekierowanie – bardziej szczegółowa wersja 302 używana w niektórych przypadkach.
  4. 308 Stałe przekierowanie – podobne do 301, ale zachowuje metodę żądania (np. POST) podczas przekierowania.

NGINX, dzięki prostym plikom konfiguracyjnym i wysokiej wydajności, jest doskonałym narzędziem do efektywnego zarządzania przekierowaniami.

Wymagania wstępne

Przed przystąpieniem do przekierowywania adresów URL przy użyciu NGINX, potrzebne będą następujące elementy:

  • NGINX zainstalowany i uruchomiony na serwerze
  • Dostęp roota lub sudo do serwera
  • Podstawowa znajomość plików konfiguracyjnych NGINX
  • Zainstalowany edytor tekstu, taki jak
    nano
    lub
    vim

Krok 1: Uzyskaj dostęp do plików konfiguracyjnych NGINX

Pierwszym krokiem jest uzyskanie dostępu i zmodyfikowanie pliku konfiguracyjnego NGINX, w którym zdefiniowane są bloki serwera. W zależności od systemu, pliki konfiguracyjne NGINX są zwykle przechowywane w:

  • /etc/nginx/nginx.conf (konfiguracja główna)
  • /etc/nginx/sites-available/default (określone konfiguracje witryn)

Aby edytować plik konfiguracyjny dla określonej witryny, należy użyć następującego polecenia:

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

Spowoduje to otwarcie domyślnego pliku konfiguracyjnego witryny w edytorze tekstu

nano
. Można również określić plik konfiguracyjny dla konkretnej witryny hostowanej na serwerze.

Krok 2: Podstawowe przekierowanie przy użyciu dyrektywy
return

Jednym z najprostszych sposobów przekierowania adresu URL w NGINX jest użycie dyrektywy

return
. Oto podstawowy przykład implementacji przekierowania 301 (stałego) dla pojedynczej strony:

server {
listen 80;
server_name www.old-site.com;
location /old-page {
return 301 http://www.new-site.com/new-page;
}
}

Ta konfiguracja nasłuchuje żądań na porcie 80 (HTTP) i sprawdza adres URL

/old-page
. Gdy użytkownik odwiedzi ten adres URL, zostanie trwale przekierowany na stronę
http://www.new-site.com/new-page.

Krok 3: Użycie dyrektywy
rewrite
dla zaawansowanych przekierowań

W przypadku bardziej złożonych scenariuszy przekierowań, dyrektywa

rewrite
NGINX może być niezwykle przydatna. Umożliwia ona dopasowywanie wzorców adresów URL za pomocą wyrażeń regularnych i przekształcanie ich w razie potrzeby.

Przykład: Przekierowanie wszystkich stron do nowej domeny

Jeśli przeniosłeś całą witrynę do nowej domeny i chcesz przekierować cały ruch, użyj następującej konfiguracji:

server {
listen 80;
server_name www.old-site.com;
rewrite ^(.*)$ http://www.new-site.com$1 permanent;
}

Tutaj dyrektywa

rewrite
pobiera każde przychodzące żądanie
(.*)
i dołącza je do nowej domeny
$1
, po czym następuje stałe przekierowanie 301. Zapewnia to, że wszystkie strony w starej witrynie będą wskazywać na odpowiadające im strony w nowej witrynie.

Przykład: Przekierowanie z HTTP na HTTPS

Najlepszą praktyką jest przekierowanie całego ruchu HTTP na HTTPS ze względów bezpieczeństwa. Można to łatwo osiągnąć za pomocą następującej konfiguracji:

server {
listen 80;

server_namewww.example.com;return 301 https://$server_name$request_uri;
}

Ta dyrektywa gwarantuje, że każde żądanie do witryny za pośrednictwem protokołu HTTP zostanie trwale przekierowane na HTTPS. Zmienna

$server_name
automatycznie wypełnia domenę, podczas gdy
$request_uri
zachowuje nienaruszoną ścieżkę i ciąg zapytania.

Krok 4: Warunkowe przekierowania

NGINX pozwala również na warunkowe przekierowania w oparciu o czynniki takie jak agenci użytkownika, pliki cookie lub adresy IP. Oto przykład przekierowania użytkowników na podstawie ich agenta użytkownika (na przykład przekierowanie użytkowników mobilnych do mobilnej wersji witryny):

if ($http_user_agent ~* "(Android|iPhone|iPad)") {
rewrite ^/$ http://m.example.com redirect;
}

W tym przykładzie, jeśli agent użytkownika zawiera ciąg “Android”, “iPhone” lub “iPad”, użytkownik jest przekierowywany do mobilnej wersji witryny.

Krok 5: Testowanie konfiguracji

Po wprowadzeniu zmian w konfiguracji NGINX, ważne jest, aby przetestować je pod kątem błędów składni przed ponownym uruchomieniem serwera. Użyj następującego polecenia, aby sprawdzić konfigurację:

sudo nginx -t

Jeśli test zakończy się pomyślnie, zobaczysz komunikat podobny do:

nginx: test pliku konfiguracyjnego /etc/nginx/nginx.conf zakończył się pomyślnie

Krok 6: Przeładuj NGINX

Po sprawdzeniu poprawności konfiguracji, zastosuj zmiany, przeładowując NGINX:

sudo systemctl reload nginx

Spowoduje to przeładowanie usługi NGINX i zastosowanie nowych reguł przekierowania bez przerywania aktywnych połączeń.

Krok 7: Monitorowanie i debugowanie

Ważne jest, aby monitorować dzienniki NGINX, aby upewnić się, że reguły przekierowania działają zgodnie z oczekiwaniami. Pliki dziennika znajdują się zazwyczaj w:

  • /var/log/nginx/access.log – zawiera szczegółowe informacje o każdym żądaniu.
  • /var/log/nginx/error.log – rejestruje wszelkie napotkane błędy.

Jeśli przekierowanie nie działa zgodnie z przeznaczeniem, te dzienniki mogą pomóc w identyfikacji wszelkich problemów.

Typowe przypadki użycia przekierowania URL

Oto kilka typowych scenariuszy, w których przekierowanie adresu URL może być korzystne:

  1. Migracja do nowej domeny: Przekierowanie wszystkich adresów URL ze starej domeny do nowej domeny w celu utrzymania ruchu i rankingów SEO.
  2. Zmiana struktury adresów URL: Przekieruj stare adresy URL na nowe po restrukturyzacji witryny, aby uniknąć błędów 404.
  3. Wymuszanie HTTPS: Przekieruj wszystkie żądania HTTP na HTTPS, aby zwiększyć bezpieczeństwo i zaufanie.
  4. Przekierowanie na określoną stronę: Przekieruj ruch z jednej strony na inną, jeśli oryginalna strona jest nieaktualna lub została przeniesiona.

Wnioski

Przekierowanie adresów URL za pomocą NGINX jest potężnym narzędziem do zarządzania ruchem internetowym i zapewnienia płynnego doświadczenia użytkownika. Niezależnie od tego, czy migrujesz witrynę, wymuszasz HTTPS, czy restrukturyzujesz adresy URL, NGINX ułatwia konfigurację i zarządzanie przekierowaniami. Postępując zgodnie z tym przewodnikiem, możesz skonfigurować proste i zaawansowane reguły przekierowań adresów URL, zapewniając, że zarówno użytkownicy, jak i wyszukiwarki są kierowani we właściwe miejsce.

Sprawdź swoje umiejętności we wszystkich naszych usługach hostingowych i otrzymaj 15% zniżki!

Użyj kodu przy kasie:

Skills