【发布时间】:2011-01-30 18:16:08
【问题描述】:
我必须托管一个用户发布大量短信、图片、音频和视频文件的应用程序。 认为它与 fb 消息服务非常相似 所以我们对继续使用 apache 或使用其他选项如 nginx 、lighttpd 感到困惑 那么如何决定和选择一个而不是另一个以及为什么。 请帮忙解答一下
【问题讨论】:
我必须托管一个用户发布大量短信、图片、音频和视频文件的应用程序。 认为它与 fb 消息服务非常相似 所以我们对继续使用 apache 或使用其他选项如 nginx 、lighttpd 感到困惑 那么如何决定和选择一个而不是另一个以及为什么。 请帮忙解答一下
【问题讨论】:
您可以使用 nginx 作为 apache 的反向代理。其中 nginx 将处理静态文件,而 apache 将处理动态文件。
【讨论】:
您的问题涉及不同网络服务器架构的表面,分叉与线程。有这篇来自 Philip Greenspun about AOLServer 的旧文章很好读,还有一篇来自 nginx wiki 的 theoretically complete background article 链接。
虽然像 nginx 这样的服务器在您必须同时响应大量(也非常短/小)的请求并且服务器不会浪费大量内存的情况下很方便,但在涉及到这种情况时情况会发生变化您构建的应用程序。
它是一个非常庞大且复杂的应用程序,可以在 PHP 中正常运行吗?您可以代理它并从让 nginx 生成静态文件中受益。所以 Apache 和 PHP 模块只做 PHP 工作,没有别的。或者您是否有长时间运行自己运行的快速 cgi 进程?然后,在您的情况下,纯 apache 设置(使用仅包含所需模块的轻量级编译 apache)也完全足够了。
如果您使用前端服务器代理进行拆分设置,有时很难开发用于可视化上传的进度条,顺便说一句。有些服务器会吃掉完整的上传内容,然后将其一块一块地放到后端。
但是,我可以说 nginx 是一个不错的选择,因为它可以很好地处理大量并行(keepalive)连接,而且内存很少,甚至是 https 连接。
【讨论】: