Jak skonfigurować pamięć podręczną Nginx FastCGI na Ubuntu

Nginx FastCGI Cache zwiększa wydajność Twojej witryny, zmniejszając obciążenie serwera Ubuntu. Jest to szczególnie skuteczne w przypadku treści dynamicznych, umożliwiając Nginx bezpośrednie udostępnianie treści z pamięci podręcznej bez użycia procesorów PHP. Przyspiesza to czas reakcji i zmniejsza zużycie zasobów. Oto kluczowe funkcje i zalety Nginx FastCGI Cache dla Twojej infrastruktury internetowej:

  • Efektywne dostarczanie treści: Nginx FastCGI Cache przechowuje dynamiczną zawartość, umożliwiając szybszy dostęp i dystrybucję.
  • Zmniejszone obciążenie serwera: Udostępnianie zawartości buforowanej minimalizuje liczbę wywołań PHP, odciążając serwer.
  • Skalowalność: Nginx FastCGI Cache pomaga zarządzać zwiększonym ruchem bez utraty szybkości w miarę rozwoju witryny.
  • Konfigurowalne buforowanie: Ta opcja zapewnia elastyczność w ustawianiu warunków wygaśnięcia pamięci podręcznej, obejścia i aktualizacji zgodnie z Twoimi potrzebami.
  • Lepsze doświadczenie użytkownika: Krótszy czas ładowania witryny poprawia komfort użytkownika, pozytywnie wpływając na utrzymanie odwiedzających i rankingi SEO.
  • Optymalizacja zasobów: Optymalizuje wykorzystanie zasobów serwera, co prowadzi do efektywniejszej obsługi jednoczesnych żądań.
  • Łatwe debugowanie: Zapewnia proste mechanizmy debugowania i sprawdzania zawartości w pamięci podręcznej, zapewniając płynne działanie.
  • Zgodność: Bezproblemowo współpracuje z popularnymi platformami CMS, zwiększając ich wydajność bez konieczności rozbudowanej konfiguracji.

Przechodząc do instrukcji technicznych, należy pamiętać, że wdrożenie pamięci podręcznej Nginx FastCGI to strategiczny sposób na poprawę wydajności witryny i zadowolenia użytkowników. Zacznijmy zwiększać wydajność Twojej witryny dzięki Nginx FastCGI Cache.

Skonfiguruj pamięć podręczną Nginx FastCGI

Edytuj plik konfiguracyjny Nginx dla pamięci podręcznej FastCGI

Otwórz plik konfiguracyjny

Najpierw musisz otworzyć plik nginx.conf plik. Będziemy używać edytora tekstu nano, ale możesz użyć dowolnego edytora tekstu, z którym czujesz się komfortowo. Wpisz to polecenie:

sudo nano /etc/nginx/nginx.conf

Skonfiguruj parametry FastCGI

Wewnątrz pliku znajdź blok HTTP i dodaj następujące wiersze:

fastcgi_cache_path /var/nginx/fastcgi_cache levels=1:2 keys_zone=fcgicache:150m max_size=20g inactive=60m use_temp_path=off;
fastcgi_cache_key "$scheme$request_method$host$request_uri";

Po wprowadzeniu linii naciśnij CTRL + O, typ Y, a następnie naciśnij CTRL + X do wyjścia.

Zrozumienie parametrów FastCGI

  • fastcgi_cache_path: Ten parametr określa lokalizację przechowywania pamięci podręcznej FastCGI (/var/nginx/fastcgi_cache). Jest to istotne, ponieważ określa, gdzie będzie znajdować się zawartość pamięci podręcznej.
  • levels=1:2: Tworzy to dwupoziomową hierarchię katalogów w lokalizacji pamięci podręcznej. Taka konstrukcja pomaga w rozproszeniu plików w dwóch katalogach, co z kolei zmniejsza ryzyko wąskich gardeł we/wy dysku.
  • keys_zone: Określa nazwę strefy pamięci współdzielonej (fcgicache) i jego rozmiar (150M). Strefa pamięci współdzielonej ma kluczowe znaczenie dla przechowywania kluczy pamięci podręcznej i metadanych.
  • max_size: Określa maksymalny rozmiar pamięci podręcznej (w tym przykładzie 20GB). Po osiągnięciu tego limitu najstarsze pliki zostaną usunięte, aby zwolnić miejsce na nowe.
  • inactive: Określa czas, po którym dane, do których nie uzyskano dostępu, zostaną usunięte z pamięci podręcznej. W tym przykładzie jest ustawiony na 60 minut.
  • use_temp_path: Ustawienie tego na off instruuje Nginx, aby zapisywał pliki bezpośrednio do określonego folderu pamięci podręcznej, pomijając użycie tymczasowego obszaru przechowywania.
  • fastcgi_cache_key: Służy do definiowania klucza do wyszukiwania pamięci podręcznej. Nginx tworzy skrót MD5 tego klucza, który będzie używany jako nazwa plików pamięci podręcznej.

Skonfiguruj blok serwera Nginx dla pamięci podręcznej FastCGI

Edytuj plik bloku serwera

Następnie musisz edytować plik bloku serwera. W tym przykładzie założymy, że plik ma nazwę example.com.conf. Otwórz go za pomocą następującego polecenia:

sudo nano /etc/nginx/sites-available/example.com.conf

Wstaw dyrektywy pamięci podręcznej FastCGI

Zakładając, że masz zainstalowany LEMP, wstaw następujące linie w bloku lokalizacji plików PHP:

fastcgi_cache fcgicache;
fastcgi_cache_valid 200 60m;
fastcgi_cache_use_stale error timeout updating invalid_header http_500 http_503;
fastcgi_cache_min_uses 1;
fastcgi_cache_lock on;
add_header X-FastCGI-Cache $upstream_cache_status;

Zapoznaj się z dyrektywami dotyczącymi pamięci podręcznej FastCGI

  • fastcgi_cache: Włącza buforowanie i określa zdefiniowaną wcześniej strefę pamięci współdzielonej.
  • fastcgi_cache_valid: Określa czas trwania pamięci podręcznej dla określonych kodów stanu HTTP.
  • fastcgi_cache_use_stale: Ustawia warunki, w których Nginx może używać nieaktualnej odpowiedzi z pamięci podręcznej.
  • fastcgi_cache_min_uses: Określa, jak często należy żądać odpowiedzi, zanim zostanie ona zapisana w pamięci podręcznej.
  • fastcgi_cache_lock: Zapewnia, że ​​tylko jedno żądanie na raz zapełnia nowy element pamięci podręcznej, zapobiegając „zamrożeniu pamięci podręcznej”.
  • add_header: Dodaje niestandardowy nagłówek (X-FastCGI-Cache) do odpowiedzi HTTP, wskazując, czy odpowiedź została dostarczona z pamięci podręcznej.

Skonfiguruj czyszczenie pamięci podręcznej FastCGI na Nginx

Konfigurowanie czyszczenia pamięci podręcznej

Czyszczenie pamięci podręcznej umożliwia usunięcie zawartości z pamięci podręcznej przed jej wygaśnięciem. Aby skonfigurować czyszczenie pamięci podręcznej, utwórz dyrektywę czyszczenia pamięci podręcznej, wstawiając następujące wiersze do pliku bloku serwera:

location ~ /purge(/.*) {
    # Uncomment the following two lines to allow purge only from the webserver
    allow 127.0.0.1;
    deny all;
    fastcgi_cache_purge fcgicache "$scheme$request_method$host$1";
}

Naciskać CTRL + O, typ Y, a następnie naciśnij CTRL + X aby wyjść z edytora tekstu.

Alternatywne podejście do problemów z czyszczeniem pamięci podręcznej

Jeśli napotkasz problemy z czyszczeniem pamięci podręcznej, możesz zamiast tego dostosować czas wygaśnięcia pamięci podręcznej. W przypadku witryn internetowych o średnim i dużym ruchu często skuteczniejsze jest ustawienie niższego współczynnika wygaśnięcia, np. 2 godzin nieaktywności i 4 godzin całkowitego wygaśnięcia.

Przetestuj i uruchom ponownie serwer Nginx

Przetestuj konfigurację

Koniecznie sprawdź poprawność konfiguracji Nginx, aby uniknąć błędów składniowych lub błędnych konfiguracji. Użyj następującego polecenia:

sudo nginx -t

Powinieneś zobaczyć następujące dane wyjściowe, jeśli wszystko jest poprawne:

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

Uruchom ponownie serwer Nginx

Na koniec zrestartuj serwer Nginx, aby zastosować wprowadzone zmiany:

sudo systemctl restart nginx

Utwórz i zoptymalizuj katalog pamięci podręcznej Nginx FastCGI

Utwórz katalog pamięci podręcznej FastCGI

Utwórzmy teraz katalog, w którym Nginx będzie przechowywać pliki pamięci podręcznej. Ścieżka ta została określona wcześniej w pliku nginx.conf plik:

sudo mkdir -p /var/nginx/fastcgi_cache

Zoptymalizuj katalog pamięci podręcznej za pomocą tmpfs (opcjonalnie)

Jeśli Twój system ma wystarczającą ilość pamięci RAM, możesz zdecydować się na użycie tmpfs do przechowywania pamięci podręcznej w pamięci. Może to skutkować krótszym czasem dostępu w porównaniu do pamięci dyskowej. Należy jednak zachować ostrożność, ponieważ przechowywanie w pamięci RAM może zużywać znaczne zasoby pamięci. Oto jak można zamontować katalog pamięci podręcznej jako tmpfs:

Edytować /etc/fstab plik:

sudo nano /etc/fstab

Dodaj następujący wiersz na końcu pliku:

tmpfs   /var/nginx/fastcgi_cache   tmpfs   defaults,size=512M   0 0

Przydziela to 512 MB pamięci RAM na pamięć podręczną. Możesz odpowiednio dostosować rozmiar w oparciu o zasoby systemowe.

Zamontuj tmpfs:

sudo mount -a

Ta konfiguracja zapewnia przechowywanie pamięci podręcznej FastCGI w pamięci, oferując większą wydajność kosztem wykorzystania pamięci RAM.

Sprawdź funkcjonalność pamięci podręcznej Nginx FastCGI

Przetestuj pamięć podręczną FastCGI za pomocą curl

Możesz sprawdzić, czy pamięć podręczna FastCGI działa poprawnie, używając pliku curl Komenda. W zależności od ustawień pamięci podręcznej może być konieczne kilkakrotne uruchomienie polecenia, zanim zobaczysz trafienie w pamięci podręcznej:

curl -I http://www.your-domain.com

Jeśli nie masz curl zainstalowany, możesz go zainstalować za pomocą:

sudo apt install curl -y

Na wyjściu poszukaj X-FastCGI-Cache: HIT nagłówek:

~$ curl -I https://www.example.com/
HTTP/1.1 200 OK
...
X-FastCGI-Cache: HIT
...

Oznacza to, że żądanie zostało obsłużone z pamięci podręcznej.

Skonfiguruj wykluczenia pamięci podręcznej

Elementy witryny, takie jak strony administracyjne WordPress, sekcje komentarzy i mapy witryn, nie powinny być buforowane. Aby skonfigurować Nginx tak, aby nie buforował ich, dodaj następujący kod powyżej location (~\.php$) linia w pliku bloku serwera:

# Cache by default
set $skip_cache 0;

# Don't cache URIs containing the following
if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-..php|^/feed/|/tag/./feed/|index.php|/.sitemap..(xml|xsl)") {
    set $skip_cache 1;
}

# Don't cache for logged-in users or comment authors
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {
    set $skip_cache 1;
}

# POST requests and URIs with a query string should bypass the cache
if ($request_method = POST) {
    set $skip_cache 1;
}

if ($query_string != "") {
    set $skip_cache 1;
}

Debugowanie wykluczeń pamięci podręcznej (opcjonalnie)

Jeśli chcesz dodać notatki do celów debugowania, możesz umieścić pod każdym z nich niestandardową notatkę set $skip_cache 1; takie stwierdzenie:

set $skip_reason "your custom note";

Może to być przydatne do zrozumienia, dlaczego określone treści nie są buforowane podczas rozwiązywania problemów.

Po wykonaniu tych konfiguracji pamiętaj o przetestowaniu konfiguracji i ponownym uruchomieniu Nginx:

sudo nginx -t
sudo systemctl restart nginx

Najlepsze praktyki i uwagi dotyczące pamięci podręcznej Nginx FastCGI

Chociaż buforowanie FastCGI może zapewnić znaczne korzyści w zakresie wydajności, konieczne jest zapewnienie optymalizacji konfiguracji pod kątem konkretnego przypadku użycia i zasobów serwera:

  • Przed dokonaniem wyboru oceń ilość dostępnej pamięci RAM tmpfs do buforowania. Upewnij się, że Twój serwer ma wystarczającą ilość pamięci dla innych krytycznych procesów.
  • Dostosuj wykluczenia pamięci podręcznej do swojej aplikacji. Podane przykłady dotyczą konkretnie WordPressa, ale w przypadku innych typów aplikacji możesz potrzebować innych wyjątków.
  • Regularnie monitoruj wykorzystanie i wydajność pamięci podręcznej. Jeśli pamięć podręczna zużywa zbyt dużo miejsca na dysku lub nie poprawia wydajności zgodnie z oczekiwaniami, rozważ odpowiednie dostosowanie ścieżki, rozmiaru lub ustawień pamięci podręcznej.

Wniosek

Cóż, masz to! Przeszliśmy przez kolejne etapy instalacji pamięci podręcznej Nginx FastCGI na Twoim serwerze Ubuntu, oferując zwiększenie wydajności Twojej witryny poprzez wydajną obsługę zawartości dynamicznej. Pamiętaj, że kluczem do maksymalizacji korzyści jest utrzymanie ustawień pamięci podręcznej zgodnie z potrzebami witryny. Nie wahaj się modyfikować ustawień, aby znaleźć idealny punkt. Niezależnie od tego, czy jesteś doświadczonym profesjonalistą, czy nowicjuszem w zarządzaniu serwerami, mamy nadzieję, że ten przewodnik był przydatnym towarzyszem w optymalizacji Twojej obecności w Internecie. Zachowaj prostotę, zachowaj spójność, a oto szybsze i płynniejsze korzystanie z witryny internetowej dla Ciebie i Twoich gości!

Joshua James
Chodź za mną
Najnowsze posty autorstwa Joshua James (widzieć wszystko)

Dodaj komentarz