nginx如何处理文件下载等长时间运行的请求?

时间:2011-07-25 18:25:54

标签: php nginx

根据我对nginx的有限理解,我知道nginx通过使用处理所有请求而不是Apache的单个线程从Apache分离自己,这会引发问题的线程。从理论上讲,一堆小请求的速度更快。但是长期运行的请求呢。

让我们假设一个用户正在下载一个大文件,或者有一些长时间运行的PHP脚本由于它依赖于(磁盘IO,数据库)的速度很慢而很慢。使用Apache时,所有内容都有自己的线程,因此当PHP等待来自数据库的响应时,另一个请求可以进入并同时处理。但是,使用nginx,是不是会锁定线程以及整个服务器?我知道你可以拥有多个nginx进程,但只为文件下载创建更多进程似乎只是想重新创建Apache。

我知道我在这里遗漏了一些东西,因为nginx处理这样的情况,但是什么? nginx如何通过其线程模型实现这一目标?

在您说出来之前,这不是this question的重复,因为它只涉及传入的连接

1 个答案:

答案 0 :(得分:1)

nginx中的工作进程可以同时处理多个传入和传出请求。您链接的问题(3436808)的答案也适用于此问题。