GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So richten Sie den Nginx-Cache auf dem LEMP-Server ein

Nginx ist ein kostenloser Open-Source-Webserver, ganz zu schweigen von einem der am häufigsten verwendeten Webserver der Welt. Es kann als Reverse-Proxy, Mail-Proxy, Load-Balancer und Caching-Server verwendet werden. Nginx ist hochgradig skalierbar und speziell auf maximale Leistung und Stabilität ausgelegt. Es verwendet eine ereignisgesteuerte Architektur und behandelt jede eingehende Anfrage in einem einzigen Thread.

Nginx wird mit einem FastCGI-Modul geliefert, das zum Zwischenspeichern dynamischer Inhalte verwendet werden kann, die vom PHP-Backend bereitgestellt werden. Sie müssen keine anderen Caching-Lösungen wie Redis, Varnish, Memcache einrichten, nachdem Sie Nginx mit FastCGI-Cache eingerichtet haben.

In diesem Tutorial zeigen wir Ihnen, wie Sie den Nginx FastCGI-Cache mit LEMP unter Ubuntu 18.04 einrichten.

Voraussetzungen

  • Ein frisches Ubuntu 18.04 VPS auf der Atlantic.Net Cloud Platform
  • Ein auf Ihrem Server konfiguriertes Root-Passwort

Schritt 1 – Atlantic.Net Cloud-Server erstellen

Melden Sie sich zunächst bei Ihrem Atlantic.Net Cloud Server an. Erstellen Sie einen neuen Server mit Ubuntu 18.04 als Betriebssystem und mindestens 1 GB RAM. Stellen Sie über SSH eine Verbindung zu Ihrem Cloud-Server her und melden Sie sich mit den oben auf der Seite hervorgehobenen Anmeldeinformationen an.

Sobald Sie sich bei Ihrem Ubuntu 18.04-Server angemeldet haben, führen Sie den folgenden Befehl aus, um Ihr Basissystem mit den neuesten verfügbaren Paketen zu aktualisieren.

apt-get update -y

Schritt 2 – LEMP-Server installieren

Beginnen wir mit der Installation von LEMP (Nginx, PHP, PHP-FPM) auf Ihrem Server.

apt-get install nginx php php-cli php-fpm -y

Der obige Befehl installiert auch den Apache-Webserver in Ihrem System, daher müssen Sie den Apache-Dienst stoppen und deaktivieren.

systemctl stop apache2
systemctl disable apache2

Starten Sie als Nächstes den Nginx- und PHP-FPM-Dienst mit dem folgenden Befehl:

systemctl start nginx
systemctl start php7.2-fpm

Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Schritt 3 – Erstellen Sie eine Beispiel-Website

Erstellen Sie zunächst mit dem folgenden Befehl ein Verzeichnis für Ihre Website:

mkdir /var/www/html/example.com

Als nächstes erstellen Sie eine info.php-Beispieldatei in Ihrem Website-Verzeichnis:

nano /var/www/html/example.com/info.php

Fügen Sie die folgenden Zeilen hinzu:

<?php phpinfo(); ?>

Speichern und schließen Sie die Datei. Ändern Sie dann den Eigentümer Ihrer Website auf www-data user:

chown -R www-data:www-data /var/www/html/example.com
chmod -R 755 /var/www/html/example.com

Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Schritt 4 – Nginx mit FastCGI-Cache konfigurieren

Als Nächstes müssen Sie eine neue Konfigurationsdatei für den virtuellen Nginx-Host erstellen, um Ihre Website bereitzustellen und den FastCGI-Cache zu aktivieren.

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

Fügen Sie die folgenden Zeilen hinzu:

# Enable FastCGI Support
fastcgi_cache_path /etc/nginx/cache levels=1:2 keys_zone=nginxcache:150m max_size=1g 
inactive=60m use_temp_path=off;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
add_header X-Cache $upstream_cache_status;

server {
listen 80;
root /var/www/html/example.com;
client_max_body_size 256M;
index info.php;
server_name example.com;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
location = /favicon.ico { access_log off; log_not_found off; }

#Disable caching for login session, user cookie, POST request, query string, site map and feeds
set $skip_cache 0;
if ($request_method = POST) {
set $skip_cache 1;
}
if ($query_string != "") {
set $skip_cache 1;
}

# Enable caching for your website.
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_index info.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
fastcgi_connect_timeout 600;
fastcgi_send_timeout 600;
fastcgi_read_timeout 600;
fastcgi_cache nginxcache;
fastcgi_cache_valid 200 301 302 60m;
fastcgi_cache_use_stale error timeout updating invalid_header http_500 http_503;
fastcgi_cache_min_uses 1;
fastcgi_cache_lock on;

}
}

Speichern und schließen Sie die Datei, wenn Sie fertig sind, und überprüfen Sie dann Nginx mit dem folgenden Befehl auf Syntaxfehler:

nginx -t

Sie sollten die folgende Ausgabe erhalten:

Aktivieren Sie als Nächstes die virtuelle Nginx-Hostdatei mit dem folgenden Befehl:

ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/

Laden Sie abschließend den Nginx-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart nginx

Eine kurze Erklärung jeder Direktive in der obigen Konfigurationsdatei ist unten gezeigt:

  • fastcgi_cache_path erstellt einen FastCGI-Cache und gibt den Cache-Speicherort, den Namen der Speicherzone (nginxcache) mit Größe (150 MB), max_size (1 GB) an und definiert den Schlüssel für die Cache-Suche.
  • add_header wird verwendet, um zu validieren, ob die Anfrage vom FastCGI-Cache bedient wurde oder nicht.
  • fastcgi gibt den Pfad des php-fpm-Sockets an.
  • fastcgi_cache aktiviert das Caching, das wir mit der Speicherzone in der Direktive fastcgi_cache_path angegeben haben.
  • fastcgi_cache_valid setzt die Cache-Zeit mit Statuscode 200, 301, 302 wird für 60 Minuten zwischengespeichert.
  • fastcgi_cache_lock erlaubt nur die erste Anfrage über den Upstream-PHP-FPM-Server.

Schritt 5 – Nginx FastCGI-Cache testen

An diesem Punkt ist Nginx mit FastCGI-Cache-Unterstützung installiert und konfiguriert. Es ist Zeit zu überprüfen, ob das Caching funktioniert oder nicht.

Öffnen Sie Ihren Webbrowser, greifen Sie über die URL http://example.com auf Ihren Nginx-Webserver zu und laden Sie die Seite einige Male neu.

Öffnen Sie als Nächstes Ihr Terminal und führen Sie den folgenden Befehl aus, um den HTTP-Antwortheader abzurufen.

curl -I http://example.com

Sie sollten die folgende Ausgabe erhalten:

HTTP/1.1 200 OK
Server: nginx/1.14.0 (Ubuntu)
Date: Fri, 24 Apr 2020 16:07:24 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Cache: HIT

Aus der obigen Ausgabe X-Cache:HIT gibt an, dass die Antwort aus dem Cache bereitgestellt wurde.

Schlussfolgerung

Herzliche Glückwünsche! Sie haben Nginx erfolgreich mit FastCGI-Cache-Unterstützung konfiguriert. Nachdem Sie das Caching aktiviert haben, sollten Sie eine enorme Leistungsverbesserung feststellen, da Seiten geladen werden, ohne dass sie von PHP gerendert werden müssen. Probieren Sie noch heute FastCGI Cache auf Nginx mit dem VPS-Hosting-Service von Atlantic.Net aus.


Linux
  1. So leiten Sie HTTP zu HTTPS in Nginx um

  2. So richten Sie einen LEMP-Server unter Debian 10 Buster ein

  3. So richten Sie Nginx-Serverblöcke in Ubuntu 18.04 LTS ein

  4. So installieren Sie LEMP unter Ubuntu 16.04

  5. Wie richte ich einen NTP-Server in CentOS ein?

So konfigurieren Sie NGINX auf einem CentOS 7-Server

So richten Sie HAProxy unter CentOS 8 ein

So richten Sie Nginx Cache auf einem LAMP-Server ein

So installieren Sie den LEMP-Stack unter Rocky Linux 8

So installieren Sie den LEMP-Server auf Oracle Linux 8

So richten Sie einen NGINX RTMP-Server für das Streaming ein