Wissensdatenbank
1 000 FAQs, 500 Anleitungen und erläuternde Videos. Hier gibt es nur Lösungen!
Weiterleiten des Webverkehrs an einen bestimmten Port
Diese Anleitung behandelt die Umleitung des Webverkehrs zu einem bestimmten Port, einschließlich der Verwendung einer dedizierten IP und einer bestimmten Webanwendung (wie z.B. Node oder Varnish).
Voraussetzungen
- Fügen Sie eine Website zu Ihrem Hosting hinzu.
- Installieren Sie
HAProxyauf dem Cloud-Server.
Webverkehr zu einem bestimmten Port umleiten
Standardmäßig wird der Webverkehr auf dem Cloud-Server an Apache gesendet. Um Anfragen an ein Node-Skript oder einen anderen Dienst (vorausgesetzt, er "hört" auf einem Port zwischen 4000 und 4009) zu senden, müssen Sie HAProxy verwenden.
Dies gilt insbesondere für Server wie Express, Socket.IO, Meteor.js, Nuxt.js, Django, Flask, Ruby on Rails, möglicherweise sogar Java (J2E) usw.
Dazu müssen Sie sicherstellen, dass der Dienst auf einem Port zwischen 4000 und 4009 "hört" (z.B. mit server.listen(4000) für Express oder einen einfachen HTTP Node-Server, aber je nach Projektart auf andere Weise, in einer Konfigurationsdatei, im Code oder anders) und auf allen Schnittstellen (0.0.0.0).
Es ist auch notwendig, HAProxy wie im folgenden Beispiel zu konfigurieren:
- Klicken Sie hier, um auf die Verwaltung Ihres Cloud-Servers im Infomaniak Manager zuzugreifen (Hilfe benötigt?).
- Klicken Sie direkt auf den Namen, der dem betreffenden Cloud-Server zugewiesen wurde.
- Klicken Sie im linken Seitenmenü auf Fast Installer.
- Klicken Sie auf das Aktionsmenü ⋮, das sich rechts neben
HAProxybefindet. - Klicken Sie auf Konfigurieren:

- Wählen Sie die gewünschten Informationen aus und speichern Sie:

Besonderer Fall von Aliasen und Wildcards
Die Konfiguration von HAProxy über den Fast Installer gilt ausschließlich für die Hauptdomäne des Hostings.
Derzeit werden Domänen-Aliase (sowohl spezifische als auch vom Typ Wildcard wie *.domain.xyz) nicht nativ von diesem Tool unterstützt.
Um den Verkehr eines Alias zu Ihrer Anwendung (die z.B. auf Port 4000 hört) umzuleiten, müssen Sie eine Regel vom Typ "Proxy" manuell in der Datei .htaccess konfigurieren, die sich in der Wurzel Ihrer Website befindet:
# Redirect all traffic to the application (e.g., Node.js on port 4000)
RewriteEngine On
RewriteRule ^(.*)$ http://localhost:4000/$1 [P,L]Ohne diese manuelle Anweisung werden alle Anfragen, die Ihren Aliasen oder Wildcards entsprechen, standardmäßig an Apache statt an Ihre spezifische Anwendung weitergeleitet.
Abrufen der Quell-IP einer Anfrage
Wenn Sie den Webverkehr zu Ihrer Webanwendung umleiten, ändert sich die Verarbeitung der Anfragen und die Anfrage wird zunächst von einem reverse proxy (lokal auf dem Server) empfangen, der die Anfrage dann an den gewählten Port weiterleitet. Daher geben die Methoden, die normalerweise verwendet werden, um die IP-Adresse des Besuchers abzurufen, aufgrund der Weiterleitung der Anfrage die IP-Adresse des reverse proxy anstelle der des Besuchers zurück.
Um in diesen Fällen die tatsächliche Quell-IP-Adresse des Besuchers abzurfen, müssen Sie einen HTTP-Header namens X-Forwarded-For konsultieren, der die Quell-IPs enthält, die bei jeder Umleitung gesammelt wurden. Dieser Header enthält daher als Letztes die ursprüngliche IP-Adresse des Clients, sodass der tatsächliche Besucher identifiziert werden kann.
Achtung: Es ist wichtig zu beachten, dass HTTP-Header manipuliert werden können, was Sicherheitsrisiken birgt. Um diese Risiken zu minimieren, wird empfohlen, zu überprüfen, ob die Anfrage tatsächlich von einem vertrauenswürdigen Server stammt, bevor dem Inhalt des Headers X-Forwarded-For vertraut wird. Diese Überprüfung kann die Sicherstellung beinhalten, dass die Anfrage von einem vertrauenswürdigen Zwischen-Server übertragen wurde, der durch eine vorab festgelegte Liste von IP-Adressen identifiziert wird. Wenn die Website eine dedizierte IP-Adresse verwendet, sind die vertrauenswürdigen Server:
- 83.166.133.15
- 83.166.133.17
- 83.166.133.16
- 84.16.92.5
- 84.16.92.43
- 10.2.32.255
- 10.2.34.164
Link zu dieser FAQ:
War diese FAQ nützlich?