【发布时间】:2013-05-28 07:20:36
【问题描述】:
我将 Apache Web Server 作为 Web 服务器,并且 NodeJS 也在同一系统上的不同端口上运行。我正在反向代理它以连接到它并将其用于不同目的。我想知道有哪些方法可以将这种架构扩展到 1000 万用户左右,Apache 是一个不错的选择吗?如果是,请告诉我如何管理这样的场景,因为我无法继续使用不同的架构。
【问题讨论】:
标签: javascript apache node.js http-headers
我将 Apache Web Server 作为 Web 服务器,并且 NodeJS 也在同一系统上的不同端口上运行。我正在反向代理它以连接到它并将其用于不同目的。我想知道有哪些方法可以将这种架构扩展到 1000 万用户左右,Apache 是一个不错的选择吗?如果是,请告诉我如何管理这样的场景,因为我无法继续使用不同的架构。
【问题讨论】:
标签: javascript apache node.js http-headers
如果您向它投入足够的资源(负载均衡器后面的实例越来越多),Apache 当然可以接受它。这就是几乎所有 Web 应用程序的理念:水平扩展。但是由于它为每个请求创建一个新线程,它的效率(每个实例)非常低。如果您需要x Apache 实例来维持您的流量,您可以切换到 nginX(它使用更高效的事件模型,而不是 Apache 的线程模型)并使用 x/2 实例维持相同的流量.
nginX 也有权衡:支持资源少得多,企业中的使用量少,没有 apache 存在那么久,如果要添加新模块需要重新编译,等等。由您决定如果值得。较小/较精简的公司更喜欢 nginx 以降低成本,而大型企业则更喜欢 apache,因为有更多的支持和知道配置它的人。
【讨论】: