No olvides que en las ciencias cualquier problema suele tener diversas resoluciones, no obstante nosotros aquí compartimos lo más óptimo y eficiente.
Solución:
Finalmente logré hacerlo, gracias a este tema.
QUE HACER:
1) Tener instalado Apache 2.4 (no funciona con 2.2), y hacer:
a2enmod proxy
a2enmod proxy_http
a2enmod proxy_wstunnel
2) tener nodejs
ejecutándose en el puerto 3001
3) Haz esto en la configuración de Apache
ServerName www.domain2.com
RewriteEngine On
RewriteCond %REQUEST_URI ^/socket.io [NC]
RewriteCond %QUERY_STRING transport=websocket [NC]
RewriteRule /(.*) ws://localhost:3001/$1 [P,L]
ProxyPass / http://localhost:3001/
ProxyPassReverse / http://localhost:3001/
Nota: si tiene más de un servicio en el mismo servidor que usa websockets, es posible que desee hacer esto para separarlos.
En lugar de filtrar por URL, también puede filtrar por encabezado HTTP. Esta configuración funcionará para cualquier aplicación web que use websockets, incluso si no usan socket.io:
ServerName www.domain2.com
RewriteEngine On
RewriteCond %HTTP:Upgrade =websocket [NC]
RewriteRule /(.*) ws://localhost:3001/$1 [P,L]
RewriteCond %HTTP:Upgrade !=websocket [NC]
RewriteRule /(.*) http://localhost:3001/$1 [P,L]
ProxyPassReverse / http://localhost:3001/
Puede ser será útil. Solo todas las consultas se envían a través de ws al nodo
ServerName www.domain2.com
ProxyPass "ws://localhost:3001/"
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)