Apache ist der beliebteste Webserver, der auf einer großen Anzahl von Betriebssystemen ausgeführt werden kann, einschließlich UNIX / Linux, Microsoft Windows und OpenVMS.
NGINX ist ein Hochleistungs-Webserver, der insbesondere für statische Dateien und als Reverse-Proxy verwendet wird, aber dank seiner Vielseitigkeit in jeder Situation eingesetzt werden kann.
In diesem Tutorial entdecken wir, wie wir die Stärken beider Webserver nutzen können, indem wir sie dazu bringen, in perfekter Harmonie zusammenzuarbeiten. NGINX wird als Frontend-Webserver verwendet, der Client-Anfragen verarbeitet und sie an Apache sendet, der unser Backend-Webserver sein und die angeforderte Antwort zurücksenden wird. Dieses Verfahren ermöglicht es, verschiedene Vorteile von der Leistung bis zur Sicherheit zu erzielen.
Verbinden Sie sich zunächst über eine SSH-Verbindung mit Ihrem Server. Wenn Sie dies noch nicht getan haben, wird empfohlen, unseren Leitfaden zu befolgen, um sich sicher mit SSH zu verbinden. Im Falle eines lokalen Servers gehen Sie zum nächsten Schritt und öffnen Sie das Terminal Ihres Servers.
Apache-Installation und -Konfiguration
Aktualisieren Sie die Repositories der Ubuntu-Linux-Distribution, um sicherzustellen, dass Sie die neueste Version von Apache herunterladen:
$ sudo apt-get update
Starten Sie dann die Installation:
$ sudo apt install apache2
An dieser Stelle ist die Installation von Apache abgeschlossen und Sie können mit der Konfiguration fortfahren.
Ändern Sie den standardmäßig von Apache verwendeten Port in 8080. Öffnen Sie dazu die Konfigurationsdatei wie gezeigt:
$ sudo nano /etc/apache2/ports.conf
Suchen Sie die Zeile „Listen 80“ und ändern Sie sie in „Listen 8080“, speichern und schließen Sie die Datei.
Starten Sie den Apache-Dienst neu:
$ sudo systemctl restart apache2
Um die Änderung des Apache-Ports zu überprüfen, besuchen Sie http://
Installation und Konfiguration von NGINX
Fahren Sie fort, indem Sie die Installation von NGINX starten:
$ sudo apt-get install nginx
Wenn die Installation abgeschlossen ist, öffnen Sie die NGINX-Konfigurationsdatei wie gezeigt:
$ sudo nano /etc/nginx/nginx.conf
Bearbeiten oder fügen Sie dann den Serverblock wie hier gezeigt hinzu, um NGINX als Apache-Proxyserver zu verwenden:
server {
listen 80;
root /var/www/html;
index index.php index.html index.htm;
server_name SERVER_IP;
location / {
proxy_pass http://localhost:8090;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Speichern und schließen Sie die Datei.
Starten Sie dann den NGINX-Dienst neu:
$ sudo systemctl restart nginx
Firewall-Konfiguration
Falls eine Firewall auf Ihrem System vorhanden ist, stellen Sie diese so ein, dass HTTP-Verkehr und HTTPS-Verkehr zu Ihrem Computer zugelassen werden.
Wenn Sie die UFW-Firewall verwenden, haben Sie vorinstallierte Profile für NGINX. Sehen wir uns also an, wie man sie aktiviert.
Führen Sie diesen Befehl aus, um die verfügbaren Profile zu überprüfen, die in der UFW-Firewall installiert sind:
$ sudo ufw app list
Eine ähnliche Liste wird auf dem Bildschirm angezeigt:
Available applications:
Dovecot IMAP
Dovecot POP3
Dovecot Secure IMAP
Dovecot Secure POP3
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
Postfix
Postfix SMTPS
Postfix Submission
Um HTTP- (Port 80) und HTTPS- (Port 443) Datenverkehr zuzulassen, verwenden Sie das Profil „Nginx Full“.
Es ist möglich, Ihre Profilinformationen wie folgt zu überprüfen:
$ sudo ufw app info "Nginx Full"
Die Beschreibung des Profils erscheint auf dem Bildschirm:
Profile: Nginx Full
Title: Web Server (Nginx, HTTP + HTTPS)
Description: Small, but very powerful and efficient web server
Ports:
80,443/tcp
Nachdem Sie das Profil überprüft haben, können Sie es aktivieren:
$ sudo ufw allow in "Nginx Full"
Fahren Sie schließlich mit dem Testen der beiden Webserver fort, indem Sie die Adresse http://
Wenn der Vorgang korrekt durchgeführt wurde, wird Ihre Website mit dem Standard-Apache-Bildschirm angezeigt. Das bedeutet, dass der Reverse-Proxy funktioniert und korrekt konfiguriert wurde.