Ihr Cloudron als Reverse Proxy verwenden
Written by Socialism.tools Admin
Published July 06, 2021

Wenn Sie Ihr Cloudron zu Hause hosten, haben Sie vielleicht andere Anwendungen auf anderen Rechnern, für die Sie einen Reverse-Proxy erstellen möchten. Mit einem Reverse-Proxy können Sie myapp.domain.com eingeben und werden zu Ihrer lokalen Anwendung weitergeleitet, die normalerweise keinen Webserver auf Port 80/443 betreibt. Vor dem Einsatz eines Reverse-Proxys kann ich nur auf die Anwendungen zugreifen, die ich zu Hause bei mir zu Hause ausführe, und zwar über deren IP. Ein Reverse-Proxy überbrückt die Lücke zwischen der Außenwelt und Ihrem internen Netzwerk und bietet in unserem Fall SSL-Sicherheit.

Wenn Sie Cloudron in der Cloud hosten, hat jede Ihrer VMs ihre eigene IP-Adresse und Sie brauchen wahrscheinlich keinen Reverse-Proxy.

Bei Cloudron ist der beliebte Webserver NGINX bereits installiert. Es richtet Reverse Proxies für Cloudron-Apps ganz von selbst ein, aber das Hinzufügen weiterer Reverse Proxies für Nicht-Cloudron-Apps wird nicht explizit unterstützt – Sie können es aber trotzdem mit minimalem Aufwand tun.

Melden Sie sich zunächst per SSH bei Ihrer Cloudron-Box an. Wenn Sie dies noch nicht getan haben, verwenden Sie Terminal auf dem Mac oder drücken Sie Win+X unter Windows und wählen Sie Powershell (Admin) und fügen Sie es dann ein:

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

Damit wird OpenSSH installiert. SSH ist wie das Öffnen einer Remote-Konsole auf dem Zielserver. Es ist nur Text.

Nachdem Sie sich mit dem Benutzernamen cloudron und Ihrem Passwort angemeldet haben, führen Sie cd /etc/nginx/applications aus, um Ihr aktuelles Verzeichnis vom Home-Ordner zu NGINX zu ändern.

Erstellen Sie nun eine neue .conf-Datei mit dem Namen Ihrer Anwendung (z. B. lidarr.conf). Fügen Sie den folgenden Text in die conf-Datei ein und bearbeiten Sie die drei aufgeführten URIs:

server {
  server_name yourappname.yourdomain.com;
  location /the-proxy-path-check-your-app-docs-for-this {
  	proxy_pass http://internal.ip:port;
  }
}
Hier ein Beispiel dafür, was ich für einen Reverse-Proxy zu meinem Synology NAS verwende:
server {
  server_name syno.mydomain.com;
  location / {
    proxy_pass http://192.168.1.222:5000;
    proxy_set_header Host $host;
    proxy_redirect http:// https://;
    proxy_http_version 1.1;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
  }
}

Die zusätzlichen Zeilen dort weisen NGINX an, Dinge wie Websockets weiterzuleiten, die Synology benötigt. Mit etwas Recherche im Internet können Sie herausfinden, ob Ihre Anwendung diese Zeilen benötigt oder nicht. Ich empfehle, es zunächst ohne sie zu versuchen und sie hinzuzufügen, wenn beim Testen Probleme auftreten.

Als nächstes müssen wir Certbot installieren, das Ihre Website automatisch und kostenlos mit HTTPS absichert. Es ist so einfach wie:

  1. sudo apt-get install python3-certbot-nginx
  2. sudo certbot –nginx
  3. wählen Sie die soeben erstellte Site in Ihrer .conf-Datei aus
  4. Umleitungen auf Anfrage aktivieren

Das war’s! Wenn Sie Ihre .conf erneut öffnen, werden Sie sehen, dass einige weitere Informationen hinzugefügt wurden, um HTTPS zu unterstützen, aber Sie müssen nichts tun. Sie können so viele Einträge haben, wie Sie wollen, aber seien Sie sehr vorsichtig, um sicherzustellen, dass Sie nicht eine Cloudron-Datei bearbeiten oder versuchen, eine Subdomain zu nehmen, die Cloudron benötigt.

Sie können Ihre Dateien mit SCP sichern. Ich verwende WinSCP unter Windows und ziehe Dateien per Drag & Drop in einen lokalen Ordner. Cloudron löscht bei einem größeren Update Ihre Forwards, aber mit SCP können Sie sie einfach wieder reinziehen. Möglicherweise müssen Sie sich selbst die Berechtigung für den nginx-Anwendungsordner mit etwas wie

 

sudo setfacl -m u:username:rwx /etc/nginx/applications