Nginx+PHP上傳大文件設置

nginx的修改php

send_timeout    60;

    fastcgi_connect_timeout 300;

    fastcgi_send_timeout 300;

    fastcgi_read_timeout 300;

    client_max_body_size 30m;     能夠全局設置也能夠每一個網站單獨設置

php的修改nginx

upload_max_filesize    10M

    post_max_size  15M     該項應該要大於 upload_max_filesize

    max_input_time  300

    max_execution_time  300

php-fpm注意參數服務器

request_terminate_timeout  300

    request_slowlog_timeout 若是多數爲上傳大文件則設置較大值,這個根據自身狀況設置

這兩個參數若是設置太小的話會致使文件傳輸了一部分後鏈接關閉。網絡

最大時間根據用戶帶寬計算,不建議設置爲 0 無限制,避免意外宕機。併發

==========================================================php-fpm

因爲看到網上不少配置帖子中說要把 nginx.conf 中的 keepalive_timeout 時間設置加大才行post

個人服務器上設置爲:測試

keepalive_timeout 60; 默認 大概 75s 我設置的是 60,網站

因此code

通過實際測試,本地限速 34KB/s 上傳 9MB 文件,用時270秒左右,上傳成功,

代表實際上傳不受 keepalive_timeout 時間影響,和該項配置無關

並且這個時間加長會嚴重影響 nginx 的併發


至於 send_timeout 我在網上查詢了半天也沒搞清楚究竟是怎麼個超時,一樣也測試過,

將 send_timeout 設置爲 60 後,

上傳超過 170s 仍然上傳成功,因此我理解的是該超時時間應該爲 客戶端上傳時網絡斷流後超過 60s 則中止接收接收操做,中斷鏈接。只要持續發送數據則不會斷掉,多是這樣的吧

相關文章
相關標籤/搜索