18 votos

Ejecutar varios servidores en el mismo puerto

Me gustaría correr un servidor XAMPP y un servidor Nodejs en el puerto 80.

Si el servidor recibe una solicitud HTTP, entonces XAMPP encargará, si el servidor recibe una petición de Websocket, entonces Nodejs

¿Cómo es posible? Si un puerto ya está en uso, entonces no puedo empezar el otro programa servidor.

44voto

Sven Puntos 51980

Necesitará usar un proxy inverso para hacer esto, por ejemplo Apache 2.4. con mod_proxy_wstunnel.

Usarlo como un frontend y luego un túnel las conexiones con el servidor apropiado.

22voto

grekasius Puntos 1802

Solo un proceso puede escuchar en un puerto determinado para la misma dirección IP y el protocolo, porque de lo contrario el sistema operativo no sabe que el proceso de enviar el paquete recibido.

Para lograr lo que usted desea, usted tendrá que usar un proxy inverso que va a escuchar en el puerto 80 y reenviar el tráfico a destino correcto. Hay varias maneras de hacer esto. Por ejemplo, usted puede configurar su servidor web (Apache) para reenviar WebSocket solicitudes o usted puede configurar Node.js para reenviar el tráfico HTTP. La investigación de las opciones disponibles y elegir el que se adapte a sus necesidades mejor.

3voto

David Spillett Puntos 18934

Así como el proxy inverso de la opción de que otros ya han mencionado, se pueden tener varias direcciones IP asignada a la máquina. Esto puede costar para IPv4 (o simplemente no estar disponible dependiendo de donde el servidor es alojado), pero no si usted está en una posición para utilizar IPv6 (es decir, si las personas que se conectan a uno o ambos o sus servicios van a ser IPv6 capaz). De esta manera ambos servicios se puede escuchar en el puerto 80 en diferentes direcciones.

Tan solo mencionar el puerto 80 supongo que usted no está usando HTTPS. Si a continuación, si se utiliza el proxy inverso opción que usted necesita necesita tener un multi-nombre de certificado SSL o configurar SNI y vivir con el hecho de que algunos clientes antiguos (es decir, en XP, antiguas versiones de Android) no será capaz de conectarse sin errores. La dirección múltiple opción de eludir esta cuestión a expensas de la necesidad de la dirección adicional(es) asignado.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: