簡體   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