我正在开发一个完全 js、HTML5 画布游戏,并希望它是“实时”的。根据我的研究,我发现 Node.js 是一个令人兴奋的前景,因此我在我的 ubuntu 12 Web 服务器上使用 socket.io、express 等配置了它。
我是一名程序员,但只是网络服务器后端领域的菜鸟,这就是我请求您帮助的原因。我对整个系统模型感到困惑,想弄清楚它是如何工作的。也许是我短时间内读了太多的文章。
首先:我在我的网络服务器上运行 nginx 1.2.x。据我所知,nginx正在处理请求,它专用于端口80(对我来说)并服务http请求(也使用php-fpm来服务php)。
再说一次,我在端口 8080 上成功运行了一个 Nodejs 服务器。我想通过 websocket 进行连接(由于它的性质和协议),因为 nginx 不支持 websocket 但我对发生的事情感到困惑。
如果我访问 http://mydomain.tld:8080,这是否会通过节点服务器并阻止 nginx?在这种情况下,连接可以通过 websocket 进行,而不是回退到 xhr 或其他任何东西(我不想要它,因为可扩展性),对吧?
那么我应该怎么做才能在 http://mydomain.tld/game/ 上获得相同的效果?只是将nginx.conf中的请求代理到节点服务器吗?喜欢:
# if a file does not exist in the specified root and nothing else is definded, we want to serve the request via node.js
try_files $uri @nodejs;
location @nodejs
{
proxy_pass 127.0.0.1:8080;
break;
}
From: https://stackoverflow.com/a/14025374/2039342
当我们需要通过 nginx 进行 websocket 通信时,这是否是一个很好的代理解决方法?当我们想要一个常规的 php 站点和其中的 socket.io 连接时,我们会这样做吗?此时,我认为重点是在端口 80 上运行流量并将标准请求和 Websocket 流量分开。就我而言,最简单的解决方案是什么?
http://www.exratione.com/2012/07/proxying-websocket-traffic-for-nodejs-the-present-state-of-play/在这篇文章中,我发现 HAProxy 可能适合我,直到 nginx 1.3,是吗?
我知道我的问题有点混乱,但我正在努力理解确切的技术。请给我一些提示|文章阅读 |起点|基本配置。
PS:我已经在这里阅读了大部分相关主题。
Ps2.:为了看起来不那么愚蠢:我已经在red5(基于java的flash服务器)+ flash中完成了这个游戏,所以我只想重新考虑并使用适当的当前技术发布它。