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

So richten Sie Nginx Cache auf einem LAMP-Server ein

Apache ist einer der zuverlässigsten und leistungsstärksten verfügbaren Webserver. Apache ist Open Source, hochgradig anpassbar und wird mit vielen Modulen geliefert, mit denen Sie zusätzliche Funktionen hinzufügen können. Es ist bekannt für seine Leistungsfähigkeit und wurde speziell für kleine bis mittelgroße Websites entwickelt.

Durch die parallele Verwendung von Apache mit Nginx und FastCGI Cache können Sie das Beste aus beiden Welten herausholen. Dieses Setup verbessert die Leistung Ihres Webservers, indem es die Stärken beider Webserver-Anwendungen nutzt. Der Nginx FastCGI-Cache speichert Kopien von Dateien in einem Cache, damit schneller auf sie zugegriffen werden kann.

In diesem Tutorial zeigen wir Ihnen, wie Sie den Nginx FastCGI-Cache mit LAMP Server unter Ubuntu 18.04 einrichten. Wir werden Apache als Backend-Server und Nginx als Frontend-Server mit FastCGI-Cache konfigurieren.

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 und wählen Sie Ubuntu 18.04 als Betriebssystem mit 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 – LAMP Server installieren

First, install the Apache web server, PHP, PHP-FPM and other modules with the following command:

apt-get install apache2 php php-fpm libapache2-mod-php7.2 libapache2-mod-fcgid -y

Sobald alle Pakete installiert sind, müssen Sie einige erforderliche Apache-Module aktivieren, damit Apache mit PHP-FPM arbeiten kann.

Sie können sie mit dem folgenden Befehl aktivieren:

a2enmod actions fcgid alias proxy_fcgi

Starten Sie als Nächstes den Apache-Dienst neu, um die Änderungen zu übernehmen.

systemctl restart apache2

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 und ändern Sie dann den Eigentümer Ihrer Website zu 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 – Apache-Webserver konfigurieren

nano /etc/apache2/ports.conf

Ändern Sie die Zeile von „Listen 80“ in „Listen 8088“:

Listen 8088

Speichern und schließen Sie die Datei, wenn Sie fertig sind, und deaktivieren Sie dann die standardmäßige virtuelle Apache-Hostdatei mit dem folgenden Befehl:

a2dissite 000-default.conf

Starten Sie als Nächstes den Apache-Webserver neu, um die Änderungen zu implementieren.

systemctl restart apache2

Erstellen Sie als Nächstes eine neue Konfigurationsdatei für virtuelle Hosts, um Ihre Website bereitzustellen:

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

Fügen Sie den folgenden Inhalt hinzu:

<VirtualHost 127.0.0.1:8088>
ServerName 127.0.0.1
ServerAdmin [email protected]
DocumentRoot /var/www/html/example.com
DirectoryIndex info.php

<FilesMatch \.php$>
# 2.4.10+ can proxy to unix socket
SetHandler "proxy:unix:/run/php/php7.2-fpm.sock|fcgi://localhost"
</FilesMatch>

<Directory /var/www/html/>
Options FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Directory>
CustomLog /var/log/apache2/access.log combined
ErrorLog /var/log/apache2/error.log
</VirtualHost>

Speichern und schließen Sie die Datei, wenn Sie fertig sind, und aktivieren Sie dann die Konfigurationsdatei des virtuellen Apache-Hosts mit dem folgenden Befehl:

a2ensite example.com.conf

Starten Sie als Nächstes den Apache-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart apache2

An diesem Punkt ist der Apache-Webserver konfiguriert und lauscht auf localhost auf Port 8088.

Schritt 5 – Konfigurieren Sie Nginx als Reverse-Proxy mit FastCGI-Cache

In diesem Abschnitt konfigurieren wir Nginx als Reverse-Proxy für den Apache-Webserver und aktivieren den FastCGI-Cache.

Installieren Sie zuerst den Nginx-Webserver mit dem folgenden Befehl:

apt-get install nginx -y

Erstellen Sie nach der Installation eine neue Konfigurationsdatei für den virtuellen Nginx-Host:

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

Fügen Sie den folgenden Inhalt hinzu:

# Enable FastCGI Support
proxy_cache_path /etc/nginx/cache levels=1:2 keys_zone=nginxcache:100m 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;
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; }
set $skip_cache 0;

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

# Enable caching for your website.
location / {
proxy_pass http://127.0.0.1:8088;
proxy_set_header Host $host;
proxy_buffering on;
proxy_cache nginxcache;
proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 
http_503 http_504;
proxy_cache_valid 200 301 302 60m;
proxy_cache_min_uses 1;
proxy_cache_lock on;

}
}

Speichern und schließen Sie die Datei, wenn Sie fertig sind, und aktivieren Sie dann die virtuelle Nginx-Hostdatei mit dem folgenden Befehl:

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

Starten Sie als Nächstes den Nginx-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart nginx

Schritt 6 – Nginx FastCGI-Cache testen

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

Öffnen Sie Ihren Webbrowser und 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 17:01:42 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Vary: Accept-Encoding
X-Cache: HIT

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

Schlussfolgerung

In der obigen Anleitung haben wir den Apache-Webserver als Backend-Server und Nginx als Frontend-Server mit FastCGI-Caching installiert und konfiguriert. Hoffentlich wird dieses Setup die Leistung Ihres Webservers dramatisch verbessern. Beginnen Sie noch heute mit FastCGI-Caching auf Ihrem LAMP-Server mit VPS-Hosting von Atlantic.Net!


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

  2. So richten Sie WordPress auf Ubuntu Server mit Apache ein

  3. So installieren Sie LAMP Server unter Debian 11

  4. So richten Sie Apache als Frontend-Proxy für Node.js ein

  5. So installieren Sie LAMP Server unter CentOS 8

So installieren Sie LAMP (Apache, MariaDB, PHP) auf einem CentOS 7.2-Cloud-Server

So installieren Sie NGINX unter Ubuntu 20.04

So richten Sie die Passwortauthentifizierung mit Apache unter Ubuntu 18.04 ein

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

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

So richten Sie Nginx als Loadbalancer für Apache oder Tomcat für HTTP/HTTPS ein