繁体   English   中英

PHP处理大文件上传的理想Web服务器?

[英]The ideal web server for PHP to handle large file uploads?

从技术上讲,我正在制定一个文件上传API,该API将处理许多大型(250MB +)文件。

我想尽可能避免的是Web服务器在文件上载期间吞噬了整个内存,我知道在某种程度上可以避免。

另外,我不能使用Flash或Silverlight拆分文件,这可能会大大减少内存使用量。

我了解PHP的上传性能很大程度上取决于其主机Web服务器软件。 考虑到这一点,Apache是​​最适合这份工作的人,还是我应该考虑使用nginx或其他工具?

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

尽管丹尼尔·里贝罗(Daniel Ribeiro)说了什么,但我还是建议您将这些上传文件远离Apache。 您需要一个基于事件的服务器(Apache的实现很好,但恕我直言,它不如nginx / lighttpd完善)。 问题只是间接地成为内存,这与客户端的数量和带宽有关。 拆分文件并没有帮助。

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

调整TCP / IP堆栈以处理LFN(大型拥塞窗口,tcp窗口缩放)会从中受益匪浅。

我了解PHP的上传性能很大程度上取决于其主机Web服务器软件

除非您尝试在后端使用原始套接字/ Web套接字和PHP实现上传,否则上传的性能与PHP无关。 的确,从nginx调用(派生的)PHP解释器来处理文件有意义的-因为只有在上传文件时才启动该解释器

您可以同时使用Apache和Nginx,这真是太棒了!

两者之间的一些比较是:

  • Apache是​​基于进程的服务器。 nginx,基于事件的服务器。
  • Nginx和Lighttpd可能是两个最著名的异步服务器。
  • 毫无疑问,Apache是​​最著名的基于进程的服务器。

进一步的信息在这里

我会考虑将nginx文件上传模块一起使用,因为您可以避免通过PHP传递上传文件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM