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ładzie20GB
). 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 naoff
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!