Der*_*ker 10 apache port node.js socket.io
我希望这不是一个非常愚蠢的问题,但我正在学习如何为我的网站实现socket.io服务器来生成实时应用程序,但我的问题是我无法弄清楚如何在Apache服务环境中实现所述应用程序.目前,当我运行node server.js开始我socket.io服务器,我必须通过访问访问它http://localhost:XXXX哪里XXXX是什么端口我把它安装到,自然.我不希望我的网站被强制在这样的备用端口上查看,但我显然无法将服务器连接到端口80,因为Apache正在监听它.
显然,一个自然的解决方案是停止Apache服务,然后在端口80上节点服务器以避免冲突,但我不想牺牲Apache提供的所有功能.基本上,我想继续通过端口80上的Apache服务我的网站,并通过socket.io在端口3000上集成实时应用程序的某些方面,让我们说.
有没有办法做到这一点,避免我不想要的东西?这些事情是1)让用户:3000在URL中访问我的网站,2)禁用Apache,3)使用iframe.
提前致谢.
一般来说,您应该能够使用 mod_proxy 隐藏 Node.js。一些搜索发现了这个:https://github.com/sindresorhus/guides/blob/master/run-node-server-alongside-apache.md(旧链接已失效,这是一个新链接)
但是,Socket.io 可能有点挑剔(https://github.com/LearnBoost/socket.io/issues/25),因此您可能会遇到具体问题。
由于这张票有点旧,所以还是值得一试。如果您遇到问题,请不要感到惊讶。之后你的下一个赌注是将 Node.js 绑定到端口 80 并让它充当 Apache 的反向代理https://github.com/nodejitsu/node-http-proxy(仍处于相当多的开发阶段)。
最佳解决方案是在它自己的服务器上运行它,然后让您的套接字流量转到socket.example.com 或类似的地方。