Base de conocimientos
1 000 FAQ, 500 tutoriales y vídeos explicativos. ¡Aquí sólo hay soluciones!
Redirigir el tráfico web a un puerto específico
Esta guía trata sobre la redirección del tráfico web a un puerto específico, incluso en caso de utilizar una IP dedicada y una aplicación web específica (como Node o Varnish, por ejemplo).
Requisitos previos
- Añadir un sitio a su alojamiento.
- Instalar
HAProxyen el Servidor Cloud.
Redirigir el tráfico web a un puerto específico
Por defecto, en Servidor Cloud, el tráfico web se envía a Apache. Para enviar las solicitudes a un script Node u otro servicio (siempre y cuando "escuche" en un puerto entre 4000 y 4009), es necesario utilizar HAProxy.
Esto se aplica, en particular, a los servidores Express, Socket.IO, Meteor.js, Nuxt.js, Django, Flask, Ruby on Rails, e incluso, posiblemente, Java (J2E), etc.
Para ello, asegúrese de que el servicio escuche en un puerto entre 4000 y 4009 (por ejemplo, con server.listen(4000) para Express o un servidor HTTP Node básico, pero, según el tipo de proyecto, mediante otros medios, un archivo de configuración, en el código o de otra manera) y en todas las interfaces (0.0.0.0).
También será necesario configurar HAProxy como en el siguiente ejemplo:
- Haga clic aquí para acceder a la gestión de su Servidor Cloud en el Manager de Infomaniak (¿necesita ayuda?).
- Haga clic directamente en el nombre asignado al Servidor Cloud correspondiente.
- Haga clic en Instalación rápida en el menú lateral izquierdo.
- Haga clic en el menú de acciones ⋮ situado a la derecha de
HAProxy. - Haga clic en Configurar:

- Seleccione la información deseada y guárdela:

Caso particular de los alias y comodines
La configuración de HAProxy a través del Asistente de instalación rápida solo se aplica al dominio principal del alojamiento.
Actualmente, los alias de dominio (ya sean específicos o de tipo comodín como *.domain.xyz) no son compatibles de forma nativa con esta herramienta.
Para redirigir el tráfico de un alias a su aplicación (que, por ejemplo, escucha en el puerto 4000), debe configurar manualmente una regla de tipo "proxy" en el archivo .htaccess ubicado en la raíz de su sitio:
# Redirect all traffic to the application (e.g., Node.js on port 4000)
RewriteEngine On
RewriteRule ^(.*)$ {{URL_6}} [P,L]Sin esta directiva manual, todas las solicitudes que correspondan a sus alias o comodines se dirigirán por defecto a Apache en lugar de a su aplicación específica.
Recuperación de la IP de origen de una solicitud
Cuando redirige el tráfico web a su aplicación web, el procesamiento de las solicitudes cambia y la solicitud se recibe primero por un proxy inverso (local al servidor) que luego transfiere la solicitud al puerto elegido. Por lo tanto, debido a la transferencia de la solicitud, los métodos que normalmente se utilizan para recuperar la IP del visitante devolverán la IP del proxy inverso en lugar de la del visitante.
Por lo tanto, para recuperar la IP de origen real del visitante en estos casos, es necesario consultar una cabecera HTTP llamada X-Forwarded-For, que contendrá las IP de origen acumuladas durante cada redirección. Esta cabecera contendrá, por lo tanto, al final la dirección IP original del cliente, lo que permitirá identificar al visitante real.
Atención: es importante tener en cuenta que las cabeceras HTTP pueden ser manipuladas, lo que presenta riesgos de seguridad. Para minimizar estos riesgos, se recomienda verificar que la solicitud proviene de un servidor fiable antes de confiar en el contenido de la cabecera X-Forwarded-For. Esta verificación puede implicar asegurarse de que la solicitud ha sido transmitida por un servidor intermedio de confianza, identificado por una lista preestablecida de direcciones IP. En el caso de que el sitio utilice una IP dedicada, los servidores de confianza son:
- 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
Enlace a esta FAQ: https://faq.infomaniak.com/2171
¿Le ha sido útil esta FAQ?