So installierst du Apache mit Nginx als Reverse Proxy unter Ubuntu 22.04
Apache und Nginx sind kostenlos, quelloffen und gehören zu den beliebtesten Webservern weltweit. Sie werden oft zum Hosten von PHP-basierten Anwendungen verwendet. Nginx ist bekannt für seine schlanke Struktur und Geschwindigkeit, während Apache für seine Leistung bekannt ist. Beide sind für die Bewältigung unterschiedlicher Arbeitsbelastungen ausgelegt. Nginx ist gut für statische Inhalte geeignet, während der Apache dynamische Inhalte verarbeiten kann. Wir können beide Webserver auf einem einzigen System verwenden, um von beiden zu profitieren.
Dieser Artikel zeigt dir, wie du Nginx als Reverse Proxy für Apache unter Ubuntu 22.04 installierst.
Voraussetzungen
- Ein Server, auf dem Ubuntu 22.04 läuft.
- Ein gültiger Domainname, der auf die IP deines Servers zeigt.
- Ein Root-Passwort ist auf dem Server konfiguriert.
Apache Webserver installieren
Das Apache Webserver-Paket ist standardmäßig im Standard-Repository von Ubuntu 22.04 enthalten. Du kannst es installieren, indem du den folgenden Befehl ausführst:
apt-get install apache2 -y
Sobald das Apache-Paket installiert ist, starte den Apache-Dienst und aktiviere ihn so, dass er beim Neustart des Systems gestartet wird:
systemctl start apache2 systemctl enable apache2
Apache-Standardport ändern
Standardmäßig lauscht der Apache-Webserver auf Port 80. In diesem Beitrag werden wir Nginx als Reverse Proxy für Apache verwenden. Daher musst du den Apache-Standardport auf 8080 ändern. Du kannst ihn ändern, indem du die folgende Datei bearbeitest:
nano /etc/apache2/ports.conf
Suche die folgende Zeile:
Listen 80
Und ersetze sie durch die folgende Zeile:
Listen 127.0.0.1:8080
Speichere und schließe die Datei, wenn du fertig bist. Als Nächstes musst du auch die Konfigurationsdatei des virtuellen Apache-Standardhosts bearbeiten und den Standardport ändern.
Du kannst sie mit dem folgenden Befehl bearbeiten:
nano /etc/apache2/sites-available/000-default.conf
Suche die folgende Zeile:
<VirtualHost *:80>
Und ersetze sie durch die folgende Zeile:
<VirtualHost 127.0.0.1:8080>
Speichere und schließe die Datei und starte den Apache-Dienst neu, um die Änderungen zu übernehmen.
systemctl restart apache2
Jetzt kannst du den Status des Apache-Dienstes mit folgendem Befehl überprüfen:
systemctl status apache2
Du erhältst die folgende Ausgabe:
? apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2022-05-05 12:02:11 UTC; 7s ago Docs: https://httpd.apache.org/docs/2.4/ Process: 25295 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Main PID: 25299 (apache2) Tasks: 6 (limit: 4630) Memory: 20.5M CPU: 126ms CGroup: /system.slice/apache2.service ??25299 /usr/sbin/apache2 -k start ??25300 /usr/sbin/apache2 -k start ??25301 /usr/sbin/apache2 -k start ??25302 /usr/sbin/apache2 -k start ??25303 /usr/sbin/apache2 -k start ??25304 /usr/sbin/apache2 -k start May 05 12:02:11 ubuntu2204 systemd[1]: Starting The Apache HTTP Server...
Zu diesem Zeitpunkt ist der Apache gestartet und lauscht auf Port 8080. Du kannst ihn mit dem folgenden Befehl überprüfen:
ss -antpl | grep apache2
Du erhältst die folgende Ausgabe:
LISTEN 0 511 127.0.0.1:8080 0.0.0.0:* users:(("apache2",pid=25304,fd=3),("apache2",pid=25303,fd=3),("apache2",pid=25302,fd=3),("apache2",pid=25301,fd=3),("apache2",pid=25300,fd=3),("apache2",pid=25299,fd=3))
Nginx Webserver installieren
Du kannst das Nginx-Paket installieren, indem du den folgenden Befehl ausführst:
apt-get install nginx -y
Sobald das Nginx-Paket installiert ist, starte den Nginx-Dienst und aktiviere ihn so, dass er beim Neustart des Systems gestartet wird:
systemctl start nginx systemctl enable nginx
Nginx als Reverse Proxy für Apache konfigurieren
Nun musst du Nginx als Reverse Proxy konfigurieren, um alle Anfragen, die über Port 80 kommen, an den Apache Webserver Port 8080 weiterzuleiten.
Dazu erstellst du eine Konfigurationsdatei für den virtuellen Nginx-Host:
nano /etc/nginx/conf.d/proxy.conf
Füge die folgenden Zeilen hinzu:
server { listen 80; root /var/www/html/; index index.html index.htm; server_name proxy.example.com; location \ { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $host; proxy_pass http://127.0.0.1:8080; } }
Speichere und schließe die Datei, wenn du fertig bist. Überprüfe dann Nginx mit folgendem Befehl auf Syntaxfehler:
nginx -t
Du erhältst die folgende Ausgabe:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Starte anschließend den Nginx-Dienst neu, um die Änderungen zu übernehmen:
systemctl restart nginx
Du kannst den Nginx-Status auch mit dem folgenden Befehl überprüfen:
systemctl status nginx
Du erhältst die folgende Ausgabe:
? nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2022-05-05 12:03:09 UTC; 5s ago Docs: man:nginx(8) Process: 25313 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 25314 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 25315 (nginx) Tasks: 3 (limit: 4630) Memory: 3.3M CPU: 49ms CGroup: /system.slice/nginx.service ??25315 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;" ??25316 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ??25317 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" May 05 12:03:09 ubuntu2204 systemd[1]: Starting A high performance web server and a reverse proxy server... May 05 12:03:09 ubuntu2204 systemd[1]: Started A high performance web server and a reverse proxy server.
Verify Reverse Proxy
Nun ist Nginx installiert und als Reverse Proxy für den Apache Webserver konfiguriert. Du kannst ihn jetzt mit der URL http://proxy.example.com testen . Wenn alles in Ordnung ist, erhältst du die Apache-Testseite auf dem folgenden Bildschirm:
Fazit
In dieser Anleitung wurde erklärt, wie du Nginx als Reverse-Proxy für den Apache-Webserver installierst und konfigurierst. Mit dieser Einrichtung kannst du jetzt jede beliebige Anwendung im Internet hosten. Wenn du noch Fragen hast, kannst du dich gerne an mich wenden.