[英]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.