Przejdź do głównej zawartości

3 posty z tagiem "nginx"

Wyświetl wszystkie tagi

Przekierowanie 301: prosty przewodnik po konfiguracji za pomocą htaccess lub nginx

· 2 min aby przeczytać
Customer Care Engineer

jak-skonfigurować-przekierowanie-301-nginx-i-htaccess

Chcesz skutecznie przekierować użytkowników i wyszukiwarki na nowy adres URL? Przekierowanie 301 to twój najlepszy przyjaciel! Pomaga zachować pozycje SEO i uniknąć błędów 404. W tym artykule pokażemy, jak szybko i łatwo skonfigurować przekierowanie 301 w plikach .htaccess i na serwerach nginx.


Czym jest przekierowanie 301 i dlaczego jest potrzebne?

Przekierowanie 301 to stałe przeniesienie z jednego adresu URL na inny. Jest niezbędne, gdy:

  • Zmieniasz adres strony i chcesz zachować dotychczasowe pozycje w wyszukiwarkach.
  • Łączysz kilka adresów URL w jeden.
  • Chcesz uniknąć błędów 404 i utraty ruchu.

Jak skonfigurować przekierowanie 301 w .htaccess (Apache)

  1. Znajdź lub utwórz plik.htaccess

Plik.htaccess zazwyczaj znajduje się w katalogu głównym (roboczym) twojej strony. Jeśli go nie ma, utwórz nowy.

  1. Dodaj następujący kod przekierowania
  • Dla jednego URL:
Redirect 301 /old-page https://yoursite.com/new-page
  • Dla przekierowania całej strony:
RewriteEngine On

RewriteCond %{HTTP_HOST} ^oldsite\.com$ [NC]

RewriteRule ^(.*)$ https://newsite.com/$1 [L,R=301]

Zamień oldsite.com i newsite.com na odpowiednio starą i nową domenę twojej strony. 

  1. Zapisz plik

Zmiany zostaną zastosowane natychmiast.


Jak skonfigurować przekierowanie 301 w Nginx

  1. Otwórz plik konfiguracyjny nginx swojej strony

Połącz się z serwerem przez SSH i otwórz odpowiedni plik w edytorze tekstowym nano:

sudo nano /etc/nginx/sites-available/your-site.com.conf

Zamień yoursite.com na domenę swojej witryny. 

Jeśli nie można znaleźć takiego pliku, można znaleźć lokalizację pliku konfiguracyjnego za pomocą polecenia:

sudo grep -irl name /etc/nginx
  1. Dodaj reguły przekierowania do bloku server
  • Dla jednego URL:
server {

listen 80;

server_name oldsite.com;

return 301 https://newsite.com/new-page;

}
  • Dla przekierowania całej strony:
server {

listen 80;

server_name oldsite.com;

return 301 https://newsite.com$request_uri;

}
  1. Zapisz zmiany i zastosuj je

Zapisz plik za pomocą skrótu klawiaturowego "Ctrl + o" i zamknij edytor nano za pomocą "Ctrl + x". Następnie wprowadź zmiany poleceniem:

sudo systemctl reload nginx

Jak sprawdzić, czy przekierowanie działa?

Po skonfigurowaniu upewnij się, że przekierowanie 301 działa:

  • Otwórz stary URL w przeglądarce.

Przejdź na stary URL i upewnij się, że zostałeś przekierowany na nowy adres.

informacja

Test najlepiej wykonywać w trybie prywatnym przeglądarki, aby uniknąć wpływu pamięci podręcznej na wynik.

  • Skorzystaj z narzędzi online do testowania przekierowań, na przykład Redirect Checker.

HTTP/2 i HTTP/3: czy przyspieszenie jest warte zachodu? Zalety, wady i konfiguracja

· 3 min aby przeczytać
Customer Care Engineer

http2-vs-http3-speed-zalety-wady-konfiguracja

Nowoczesne protokoły HTTP/2 i HTTP/3 mogą znacząco przyspieszyć ładowanie stron, poprawić doświadczenie użytkowników i zwiększyć widoczność w wyszukiwarkach. Nie wszystko jest jednak takie proste: mają one zarówno plusy, jak i minusy. Przyjrzyjmy się, czym są, jakie zalety i wady niosą oraz jak je skonfigurować na swoim serwerze.


Czym są HTTP/2 i HTTP/3?

HTTP/2 to zaktualizowana wersja protokołu HTTP/1.1, która umożliwia równoczesne ładowanie zasobów witryny, a nie pojedynczo. Dzięki temu czas odpowiedzi jest krótszy, a obciążenie serwera mniejsze.

HTTP/3 to jeszcze bardziej zaawansowana wersja, oparta na protokole QUIC działającym na UDP. Umożliwia bardziej stabilne połączenia, szczególnie w trudnych warunkach sieciowych.


Zalety

  1. HTTP/2
  • Jednoczesne pobieranie zasobów strony (multipleksowanie).
  • Zmniejszenie opóźnień dzięki kompresji nagłówków.
  • Oszczędność transferu.
  1. HTTP/3
  • Szybkie nawiązywanie połączeń bez opóźnień.
  • Odporność na utratę pakietów (szczególnie istotne dla internetu mobilnego).
  • Świetna wydajność w niestabilnych sieciach.

Włączenie tych protokołów przyspieszy ładowanie strony, zwiększy jej wygodę dla użytkowników i przyniesie korzyści SEO.


Wady

  1. Kompatybilność
  • Protokoły HTTP/2 i HTTP/3 nie są obsługiwane przez starsze przeglądarki i urządzenia. Na przykład niektóre wersje przeglądarki Internet Explorer i starsze urządzenia z systemem Android nie będą w stanie korzystać z tych protokołów.
  • HTTP/3 korzysta z UDP, które może być blokowane przez niektóre firewalle lub filtry sieciowe.
  1. Złożoność konfiguracji
  • Nieprawidłowa konfiguracja HTTP/2 może obniżyć wydajność. Na przykład, jeśli nie używasz priorytetyzacji strumieni.
  • HTTP/3 wymaga najnowszej wersji Nginx, OpenSSL i obsługi protokołu QUIC, co może być problematyczne na starszych serwerach.
  1. Zasobożerność
  • HTTP/3 wymaga więcej zasobów serwera, zwłaszcza przy dużej liczbie połączeń.
  1. Zależność od HTTPS
  • HTTP/2 działa wyłącznie przez HTTPS, co zwiększa koszty związane z instalacją i utrzymaniem certyfikatów.
  1. HTTP/1.1 a wydajność HTTP/2/3
  • HTTP/2 i HTTP/3 nie wykluczają wsparcia dla HTTP/1.1. Chociaż może to nieznacznie obniżyć wydajność, nie powoduje poważnych problemów, ponieważ HTTP/1.1 jest używane tylko przez klientów, którzy nie obsługują nowszych protokołów.

Jak włączyć HTTP/2 i HTTP/3 w Nginx?

informacja

Jeśli korzystasz z panelu sterowania, takiego jak FASTPANEL, możesz aktywować protokoły HTTP/2 i HTTP/3 w ustawieniach witryny bez ręcznej ingerencji w jej plik konfiguracyjny.  

  1. Sprawdzenie kompatybilności

Połącz się z serwerem przez SSH.

Sprawdź aktualną wersję Nginx:

sudo nginx -v

Aby włączyć HTTP/3, potrzebna jest wersja 1.25.0 lub wyższa.

Sprawdź wersję OpenSSL:

openssl version

Do pracy z HTTP/3 wymagany jest OpenSSL w wersji 3.0.0 lub wyższej, ponieważ wcześniejsze wersje nie obsługują QUIC.

Ponadto przed wprowadzeniem jakichkolwiek zmian należy upewnić się, że konfiguracja nginx jest wolna od błędów:

nginx -t

Jeśli wszystko jest w porządku (wiadomości typu warn można zignorować), zobaczysz komunikaty:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful

2.  Konfiguracja HTTP/2

Otwórz plik konfiguracyjny witryny w edytorze tekstowym:

sudo nano /etc/nginx/sites-available/your-site.conf

Dodaj do linii listen 443 ssl dyrektywę http2 i dodaj linię http2 on do bloku server, aby uzyskać coś takiego jak poniżej:

server {

listen 443 ssl http2;

server_name example.com;



ssl_certificate /path/to/fullchain.pem;

ssl_certificate_key /path/to/privkey.pem;



http2 on;


rest of your config file

}
warning

Pamiętaj, że dla protokołów HTTPS i HTTP/2 wymagany jest ważny certyfikat SSL.

Zrestartuj serwer WWW, aby zastosować zmiany:

systemctl restart nginx
  1. Konfiguracja HTTP/3

Podobnie jak w poprzednim kroku, otwórz plik konfiguracyjny swojej witryny i zmodyfikuj go w następujący sposób:

server {

listen 443 ssl http2;

listen 443 quic reuseport;

server_name example.com;



ssl_certificate /path/to/fullchain.pem;

ssl_certificate_key /path/to/privkey.pem;



http2 on;



ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

add_header Alt-Svc 'h3=":443"; ma=86400';


rest of your config file

}

Gdzie:

  • listen 443 quic reuseport; — aktywuje HTTP/3 (QUIC) na porcie 443 i poprawia wydajność przy dużej liczbie połączeń.
  • ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; — określa wersje protokołu TLS.  Dla większego bezpieczeństwa zaleca się stosowanie tylko TLSv1.2 i TLSv1.3.
  • add_header Alt-Svc 'h3=":443"; ma=86400'; — informuje przeglądarki, że serwer obsługuje HTTP/3, i przechowuje tę informację przez 24 godziny.
warning

Parametr reuseport można zastosować tylko raz w konfiguracji serwera Nginx. Próba wielokrotnego użycia go w różnych dyrektywach listen spowoduje konflikty i błędy w działaniu serwera.

Po wprowadzeniu zmian należy przeprowadzić dodatkową weryfikację, aby sprawdzić zgodność wersji Nginx z użytymi dyrektywami oraz wykryć ewentualne błędy składni, używając polecenia:

nginx -t

Jeśli wszystko jest w porządku (wiadomości typu warn można zignorować), zobaczysz komunikaty:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful

Zrestartuj serwer Nginx, aby zastosować zmiany:

systemctl restart nginx

Podsumowanie

HTTP/2 i HTTP/3 to krok w przyszłość, który przyspiesza ładowanie stron, poprawia SEO i zwiększa komfort użytkowników. Pamiętaj jednak o kompatybilności, zasobożerności i ewentualnych trudnościach w konfiguracji.

Jeśli większość twoich użytkowników korzysta z nowoczesnych przeglądarek, rozpocznij od wdrożenia HTTP/2. HTTP/3 włącz, gdy będziesz gotów zaktualizować oprogramowanie serwera i upewnisz się, że twoja infrastruktura wspiera ten protokół.

Jeśli wolisz nie konfigurować tych protokołów ręcznie, możesz wybrać serwer z bezpłatnym panelem FASTPANEL, gdzie włączenie obsługi protokołów HTTP/2 i HTTP/3 dla Twojej witryny jest proste i wygodne.

Nie marnuj zasobów swojego serwera: blokuj niechciane boty za pomocą Nginx

· 3 min aby przeczytać
Customer Care Engineer

blokowanie-niechcianych-botów-za-pomocą-nginx

Boty wyszukiwarek (crawlers) to specjalne programy, które indeksują strony w Internecie. Są one potrzebne wyszukiwarkom do znajdowania, indeksowania i wyświetlania stron w wynikach wyszukiwania. Jednak nie wszystkie boty są pożyteczne!

Niektóre niechciane boty mogą:

  • Zbierać dane bez twojej zgody.
  • Nadmiernie obciążać serwer, powodując spowolnienia.
  • Szukać luk w zabezpieczeniach twojej witryny.

Jeśli chcesz ochronić swoją witrynę przed takimi botami, czas skonfigurować Nginx! Pokażemy ci, jak szybko i skutecznie je zablokować, wykorzystując odpowiednie ustawienia.


Po co konfigurować Nginx, jeśli istnieje plik robots.txt?

Plik robots.txt to narzędzie umożliwiające kontrolowanie zachowania botów wyszukiwarek. Pozwala określić, które strony nie powinny być przez nie indeksowane. Korzystanie z tego pliku jest bardzo proste, wystarczy w katalogu głównym witryny utworzyć plik typu:

User-agent: BadBot  

Disallow: /  

Jest jednak istotny problem: zawartość pliku robots.txt ma jedynie charakter zalecenia, a nie obowiązującej reguły. Rzetelne boty respektują ten plik, ale wiele z nich po prostu go ignoruje.

Konfiguracja z Nginx, w przeciwieństwie do robots.txt, pozwala fizycznie zablokować dostęp niechcianym botom, co gwarantuje rezultaty w 100% przypadków. 


Jak Nginx blokuje niechciane boty: użycie odpowiedzi 444

W przeciwieństwie do pliku robots.txt, który jedynie sugeruje botom, jak się zachowywać, Nginx umożliwia fizyczne blokowanie ich dostępu. Jednym ze sposobów na osiągnięcie tego celu jest wykorzystanie specjalnej odpowiedzi serwera o kodzie 444.

Kod odpowiedzi 444 — to wewnętrzny mechanizm Nginx, który zamyka połączenie z klientem bez wysyłania żadnej odpowiedzi. Jest to skuteczna metoda ignorowania niechcianych zapytań i minimalizowania obciążenia serwera.


Konfiguracja blokady

Krok 1: Jak rozpoznać niechciane boty?

Niechciane boty można zidentyfikować na podstawie ich User-Agent, czyli parametru przesyłanego przez każdego klienta odwiedzającego stronę. Dla przykładu, niektóre z nich wyglądają tak:

    AhrefsBot     SemrushBot     MJ12bot

Aby znaleźć podejrzane User-Agent w logach dostępowych Nginx (jeśli twoja witryna korzysta z PHP-FPM), możesz użyć komendy:

sudo grep -i bot /var/log/nginx/access.log

W przypadku logów Apache (jeśli witryna używa modułu Apache lub FastCGI jako interpretera PHP), użyj:

  • Dla Ubuntu/Debian:
sudo grep -i bot /var/log/apache2/access.log
  • Dla CentOS/AlmaLinux/RockyLinux:
sudo grep -i bot /var/log/httpd/access.log

Jeśli korzystasz z panelu sterowania, takiego jak FASTPANEL, każda witryna będzie miała swój własny oddzielny plik logów. Można je analizować osobno lub wszystkie naraz za pomocą polecenia typu:

  • Jeśli witryna korzysta z modułu Apache lub FastCGI jako obsługi PHP:
sudo cat /var/www/*/data/logs/*-backend.access.log |  grep -i bot | tail -500
  • Jeśli twoja strona korzysta z PHP-FPM:
sudo cat /var/www/*/data/logs/*-frontend.access.log |  grep -i bot | tail -500

Powyższe polecenia wyświetlą 500 ostatnich zapytań do wszystkich twoich stron, gdzie parametr User-Agent zawiera słowo bot. Przykładowy wpis z logów może wyglądać tak:

IP - [03/Nov/2022:10:25:52 +0300] "GET link HTTP/1.0" 301 811 "-" "Mozilla/5.0 (compatible; DotBot/1.2; +https://opensiteexplorer.org/dotbot; [email protected])"

lub

IP - [24/Oct/2022:17:32:37 +0300] "GET link HTTP/1.0" 404 469 "-" "Mozilla/5.0 (compatible; BLEXBot/1.0; +http://webmeup-crawler.com/)"

User-Agent bota znajduje się pomiędzy fragmentami “compatible;” i “/numer.wersji“ w nawiasach. Tak więc w powyższych przykładach User-agent to „BLEXBot” i „DotBot”.

Przeanalizuj uzyskane informacje i zapisz User-agent najbardziej aktywnych botów w celu dalszych ustawień blokowania. 

Krok 2: Tworzenie pliku blokady botów

  1. Połącz się z serwerem przez SSH.
  2. Przed przystąpieniem do pracy upewnij się, że w bieżącej konfiguracji Nginx nie ma żadnych błędów:
nginx -t

Jeśli wszystko jest w porządku, otrzymasz odpowiedź:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful

Jeśli w danych wyjściowych występują błędy, zapoznaj się z ich zawartością i popraw je w pliku, na który wskazują.

  1. Utwórz osobny plik z listą botów do zablokowania:
sudo nano /etc/nginx/conf.d/block_bots.conf

Dodaj następujący kod do pliku:


    map $http_user_agent $block_bot {

        default 0;

        ~*AhrefsBot 1;

        ~*SemrushBot 1;

        ~*MJ12bot 1;

    }



    server {

        if ($block_bot) {

            return 444;

        }
    }

Tutaj tworzymy mapę, która określa, który bot powinien zostać zablokowany.

Analogicznie, wymień User-agent botów, które chcesz zablokować. Każdy bot powinien być wymieniony w nowym wierszu, a na końcu wiersza należy podać znak; jako separator.

Po zakończeniu tworzenia listy naciśnij skrót „Ctrl + O”, aby zapisać plik, a następnie „Ctrl + X”, aby wyjść z edytora nano. 

Krok 3: Zastosowanie zmian

Po wprowadzeniu zmian w konfiguracji należy sprawdzić poprawność konfiguracji Nginx, aby upewnić się, że nie zawiera błędów składniowych:

sudo nginx -t

Jeśli wszystko jest w porządku, otrzymasz odpowiedź:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful

Jeśli w danych wyjściowych występują błędy, zapoznaj się z ich zawartością i popraw je w pliku, na który wskazują.

Następnie załaduj ponownie konfigurację Nginx, aby zastosować wprowadzone zmiany:

sudo systemctl reload nginx

Jeśli w przyszłości będziesz chciał dodać nowych botów do pliku block_bots.conf,musisz każdorazowo powtórzyć powyższy krok. 


Podsumowanie

Teraz wiesz, jak łatwo zablokować niechciane boty na swoim serwerze za pomocą Nginx!  Monitoruj logi i w razie potrzeby dodawaj nowe boty do pliku block_bots.conf.

Pamiętaj, aby blokować tylko szkodliwe boty, aby nie zaszkodzić indeksowaniu swojej witryny w użytecznych wyszukiwarkach, takich jak Google czy Bing.