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!