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.

Das könnte dich auch interessieren …