php - PHP 处理大文件上传的理想 Web 服务器是什么?

标签 php apache http upload nginx

我正在技术上指定一个文件上传 API,该 API 将处理大量大(250MB+)文件。

我想尽可能避免的是网络服务器在文件上传过程中耗尽全部内存,我知道在某种程度上这是可以避免的。

此外,我无法使用 Flash 或 Silverlight 来拆分文件,这可能会显着减少内存使用量。

据我所知,PHP 在很大程度上依赖于其主机 Web 服务器软件的上传性能。考虑到这一点,Apache 是最适合这项工作的还是我应该考虑 nginx 或其他?

如果 PHP 本身是最大的瓶颈,那么是否值得考虑某种混合解决方案?如果是的话,会是什么语言?

最佳答案

尽管 Daniel Ribeiro 这么说,我还是建议您远离 Apache 上传这些内容。你需要一个基于事件的服务器(Apache 的实现很好,但恕我直言,不如 nginx/lighttpd 那么完善)。问题只是间接地出现在内存上——它与客户端的数量和带宽有关。拆分文件并没有真正的帮助。

OTOH,没有什么可以阻止您使用 nginx 来处理上传并使用 apache 来提供网站的其余部分。

通过调整 TCP/IP 堆栈来处理 LFN(大拥塞窗口、tcp 窗口缩放),您将获得很多好处。

I understand that PHP is largely dependent on its host web server software for upload performance

上传的性能与 PHP 无关,除非您尝试使用原始套接字/网络套接字在后端使用 PHP 来实现上传。事实上,从 nginx 调用( fork )PHP 解释器来处理文件是有意义的 - 因为这个仅在文件上传时启动

关于php - PHP 处理大文件上传的理想 Web 服务器是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10127319/

相关文章:

java - Tomcat 不启动我的网络应用程序

mysql - 不小心以 root 用户身份安装了 phpmyadmin

apache - 关于丢失 HTTP 请求

Java:从我的应用程序按需运行 HTTP 服务器?

javascript - 如何模拟 ajax 响应

javascript - 单击 "Like"时如何阻止扇形门/类似门重定向到墙

php - 动态 jQuery 弹出窗口

添加更多表列/输入后 PHP、MySQL 登录问题

html - 类型 'filter' 上不存在属性 'Object'。尝试过滤响应时

php - 使用 PHP 去除整个 html 链接(包括文本)