Nginx+PHP上传大文件设置

发布时间:2019-08-07 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Nginx+PHP上传大文件设置脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

nginx的修改

    send_timeout    60;

    fastcgi_connect_timeout 300;

    fastcgi_send_timeout 300;

    fastcgi_read_timeout 300;

    client_max_body_size 30m;     可以全局设置也可以每个网站单独设置

php的修改

    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 无限制,避免意外宕机。

==========================================================

由于看到网上很多配置帖子中说要把 nginx.conf 中的 keepalive_timeout 时间设置加大才行

我的服务器上设置为:

keepalive_timeout 60; 默认 大概 75s 我设置的是 60,

所以

经过实际测试,本地限速 34KB/s 上传 9MB 文件,用时270秒左右,上传成功,

表明实际上传不受 keepalive_timeout 时间影响,和该项配置无关

而且这个时间加长会严重影响 nginx 的并发


至于 send_timeout 我在网上查询了天也没搞清楚到底是怎么个超时,同样也测试过,

将 send_timeout 设置为 60 后,

上传超过 170s 仍然上传成功,所以我理解的是该超时时间应该为 客户端上传时网络断流后超过 60s 则停止接收接收操作,中断连接。只要持续发送数据则不会断掉,可能是这样的吧

脚本宝典总结

以上是脚本宝典为你收集整理的Nginx+PHP上传大文件设置全部内容,希望文章能够帮你解决Nginx+PHP上传大文件设置所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。