虽然我是一名程序员,但在Web服务器后端领域中只是初学者,这就是为什么我需要你的帮助。我对整个系统模型感到困惑,想要澄清它的工作原理。也许我在短时间内阅读了太多文章。
首先:我在我的Web服务器上运行nginx 1.2.x。据我所知,nginx负责处理请求,专用于端口80(对我来说),并服务于HTTP请求(还使用php-fpm来提供PHP)。 然后,我在端口8080上成功运行了一个nodejs服务器。由于其特性和协议,我希望通过websocket连接(但由于nginx尚不支持websocket,所以我对发生了什么感到困惑)。
如果我去http://mydomain.tld:8080,这会通过node服务器并避开nginx吗?在这种情况下,连接可以通过websocket进行,而不会退回到xhr或其他任何方式(我不希望这样,因为它不易扩展),对吗?
那么要在http://mydomain.tld/game/获得同样的效果,我应该怎么做?只需要在nginx.conf中将请求代理到node服务器上吗?像这样:
# 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;
}
来源:https://dev59.com/d2Yr5IYBdhLWcg3wB1-h#14025374
如果我们需要通过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版本,是吗?
我知道我的问题有点混乱,但我正在努力理解确切的技术。请给我一些提示 | 阅读文章 | 起点 | 基本配置。
附:我已经阅读了这里相关主题的大部分内容。
PS2.为了看起来不那么愚蠢:我已经在red5(基于Java的Flash服务器)+ Flash中完成了这个游戏,所以我只想重新考虑并使用适当的现代技术发布它。