1000 FAQ, 500 Anleitungen und Lernvideos. Hier gibt es nur Lösungen!
Web-Traffic auf einen bestimmten Port umleiten
Dieser Leitfaden behandelt die Weiterleitung von Web-Traffic an einen bestimmten Port, auch wenn eine dedizierte IP und eine bestimmte Webanwendung (wie Node oder Varnish beispielsweise) verwendet werden.
Voraussetzungen
- HAProxy installieren auf dem Cloud-Server
Web-Traffic an einen bestimmten Port weiterleiten
Standardmäßig wird auf dem Cloud-Server der Web-Traffic an Apache gesendet. Um Anfragen an ein Node-Skript oder einen anderen Dienst weiterzuleiten (vorausgesetzt, er "hört" auf einem Port zwischen 4000 und 4009), müssen Sie HAProxy verwenden.
Dies gilt insbesondere für Server wie Express, Socket.IO, Meteor.js, Nuxt.js, Django, Flask, Ruby on Rails und sogar Java (J2E) usw.
Dazu stellen Sie sicher, dass der Dienst auf einem Port zwischen 4000 und 4009 hört (in der Regel mit server.listen(4000)
für Express oder einem grundlegenden Node-HTTP-Server, aber je nach Art des Projekts können auch andere Mittel verwendet werden, wie eine Konfigurationsdatei, im Code oder anderswo) und auf allen Schnittstellen (0.0.0.0). Außerdem müssen Sie HAProxy wie im folgenden Beispiel konfigurieren:
- Melden Sie sich im Infomaniak Manager (manager.infomaniak.com) mit einem Webbrowser wie Brave oder Edge an
- Klicken Sie oben rechts in der Benutzeroberfläche auf das Symbol (oder navigieren Sie durch das Menü auf der linken Seite, zum Beispiel)
- Wählen Sie Cloud-Server (im Universum Web & Domain) aus
- Klicken Sie direkt auf den Namen des betreffenden Objekts in der angezeigten Tabelle
- Klicken Sie im linken Menü direkt auf Schnellinstallations
- Klicken Sie auf das ⋮ Symbol rechts neben HAProxy
- Klicken Sie auf Konfigurieren
- Geben Sie die gewünschten Informationen ein:
Abrufen der Quell-IP einer Anfrage
Wenn Sie den Web-Traffic auf Ihre Webanwendung umleiten, ändert sich die Anfragenverarbeitung, und die Anfrage wird zunächst von einem lokalen Reverse-Proxy (auf dem Server) empfangen, der die Anfrage dann an den ausgewählten Port weiterleitet. Aufgrund der Weiterleitung der Anfrage geben Methoden, die normalerweise die IP des Besuchers abrufen, die IP des Reverse-Proxy anstelle des Besuchers zurück.
Daher müssen Sie in diesen Fällen zur Abfrage der tatsächlichen Quell-IP des Besuchers einen HTTP-Header mit dem Namen X-Forwarded-For
überprüfen, der die angesammelten Quell-IPs von jeder Weiterleitung enthält. Dieser Header enthält dann die ursprüngliche Client-IP-Adresse zuletzt, sodass Sie den echten Besucher identifizieren können.
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 Sie dem Inhalt des Headers X-Forwarded-For
vertrauen. Diese Überprüfung kann beinhalten, sicherzustellen, dass die Anfrage von einem vertrauenswürdigen Zwischenserver weitergeleitet wurde, der durch eine vordefinierte Liste von IP-Adressen identifiziert wurde. Falls die Website eine dedizierte IP 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
<p>Esta guía trata sobre la redirección del tráfico web a un puerto específico, incluso cuando se utiliza una IP dedicada y una aplicación web específica (como Node o Varnish, por ejemplo).
</p>
<h2><br></h2>
<h3>Requisitos previos<br></h3>
<ul>
<li><a href="https://faq.infomaniak.com/2349">instalar HAProxy</a> en el Servidor Cloud</li>
</ul>
<h2><br></h2>
<h2>Redirigir el tráfico web a un puerto específico</h2>
<p>Por defecto, en el Servidor Cloud, el tráfico web se envía a Apache. Para enviar solicitudes a un script Node u otro servicio (siempre y cuando "escuche" en un puerto entre 4000 y 4009), debe utilizar <strong>HAProxy</strong>.<br>
</p>
<p>Esto se aplica especialmente a servidores como Express, Socket.IO, Meteor.js, Nuxt.js, Django, Flask, Ruby on Rails e incluso Java (J2E), etc.
</p>
<p>Para ello, asegúrese de que el servicio esté escuchando en un puerto entre 4000 y 4009 (generalmente con <code>server.listen(4000)</code> para Express o un servidor HTTP Node básico, pero dependiendo del tipo de proyecto puede haber otros métodos, como un archivo de configuración, en el código u otro lugar) y en todas las interfaces (0.0.0.0). También será necesario configurar HAProxy como se muestra en el siguiente ejemplo:
</p>
<ol>
<li>Inicie sesión en el <strong>Manager de Infomaniak</strong> (<a href="https://manager.infomaniak.com/" target="_blank">manager.infomaniak.com</a>) desde un navegador web como Brave o Edge</li>
<li>Haga clic en el icono <span class="icon icon-layout-module"></span> en la esquina superior derecha de la interfaz (o <a href="https://faq.infomaniak.com/1990#nav" target="_blank">navegue</a> a través del menú lateral izquierdo, por ejemplo)</li>
<li>Elija <strong>Servidor Cloud</strong> (universo <em>Web & Dominio</em>)</li>
<li>Haga clic directamente en el nombre del objeto en cuestión en la tabla que se muestra</li>
<li>Haga clic en <strong>Instalador rápido</strong> en el menú lateral izquierdo</li>
<li>Haga clic en el icono <strong>⋮</strong> a la derecha de <strong>HAProxy</strong></li>
<li>Haga clic en <strong>Configurar<br><img alt="sign" src="https://faq.storage.infomaniak.com/653a22675fe7b2.90014457png" "=""></strong></li>
<li>Ingrese la información deseada:<br><img alt="sign" src="https://faq.storage.infomaniak.com/653a1e84697d86.58144415png"></li>
</ol>
<h2>Obtener la IP de origen de una solicitud</h2>
<h2></h2>
<p>Cuando redirige el tráfico web a su aplicación web, el procesamiento de las solicitudes cambia y la solicitud es recibida primero por un <em>proxy inverso</em> (local en el servidor) que luego la reenvía al puerto seleccionado. Por lo tanto, debido al reenvío de la solicitud, los métodos que normalmente recuperan la IP del visitante devolverán la IP del <em>proxy inverso</em> en lugar de la del visitante.
</p>
<p>Por lo tanto, para recuperar la IP de origen real del visitante en estos casos, debe consultar un encabezado HTTP llamado <code>X-Forwarded-For</code>, que contendrá las IPs de origen acumuladas en cada reenvío. Este encabezado contendrá, por lo tanto, en último lugar la dirección IP original del cliente, lo que le permitirá identificar al visitante real.
</p>
<p><strong>Atención:</strong> Es importante tener en cuenta que los encabezados HTTP pueden ser manipulados, lo que presenta riesgos de seguridad. Para minimizar estos riesgos, se recomienda verificar que la solicitud provenga realmente de un servidor confiable antes de confiar en el contenido del encabezado <code>X-Forwarded-For</code>. Esta verificación puede implicar asegurarse de que la solicitud haya sido transmitida por un servidor intermedio confiable, identificado por una lista predefinida de direcciones IP. En caso de que el sitio utilice una IP dedicada, los servidores confiables son:
</p>
<ul>
<li>83.166.133.15</li>
<li>83.166.133.17</li>
<li>83.166.133.16</li>
<li>84.16.92.5</li>
<li>84.16.92.43</li>
<li>10.2.32.255</li>
<li>10.2.34.164</li>
</ul>