繁体   English   中英

Nginx:fastcgi-proxy何时触发? 在请求标头之后还是在加载请求正文之后?

[英]Nginx: When is the fastcgi-proxy triggered? After request-header or after request-body is loaded?

将nginx用作Web服务器时,PHP设置max_input_time是否相关?

整个故事:

以访客正在上传文件的情况为例。 监听端口80的Nginx Web服务器将首先获取请求。

Nginx本身具有client_header_timeout设置,该设置与该设置无关,因为文件上载是在请求正文中处理的。 client_body_timeout是最长时间,客户端可以发送此请求正文,其中包含文件和其他一些POST数据。 该数据的大小可以受client_max_body_size的限制,对吗?

PHP现在正在等待数据。 此时间受max_input_time限制。 并且当拥有所有数据时,它将检查请求正文是否未超出post_max_size限制,然后对其进行解析并检查文件是否未超过upload_max_filesize限制。 现在,将执行php-script,该过程不应超过max_execution_time。

但是我的fastcgi-proxy何时加载? 是在请求标头加载之后,请求体加载之后还是何时触发?

或者...以另一种方式提出这个问题:当我有一个由nginx网络服务器支持的使用PHP-FPM运行的PHP时,PHP配置max_input_time是否完全相关? 当访问者的带宽较差但想上传一个大文件时,是否必须增加此值?是否足以增加client_body_timeout的Nginx设置?

如果假设不正确,请纠正我!

给出一个答案,对我来说很方便:

我尝试上传一个18MB的文件,并在50秒内收到了它。 fastcgi-proxy限制为10秒。 因此,对我来说,nginx似乎在将整个请求发送到fastcgi-proxy之前将其缓存。

因此,简而言之:不。我不需要超过max_input_time。

这可能因配置而异。 最好有人知道该代码并且可以告诉您这取决于哪些选项。

在IRC上,当nginx将数据发送到fastcgi-proxy时,没人能真正告诉我...

编辑:

只是想添加另一个资源,在这里确认了我的建议:

不幸的是,PHP仅在上传完成并且[...]之后才获取数据

请参阅会话上传进度是否可以与nginx和php-fpm一起使用中的可接受答案

暂无
暂无

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

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