我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Nginx/PHP文件上传限制说明

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Nginx/PHP文件上传限制说明

0、背景说明

通过PHP程序上述文件时,是否有限制取决多个因素,注意这里表述的是“是否有限制”, 这里的限制不光是常认为的大小的限制 ,还有上传时间的限制。
另外除了PHP服务本身之外,一般也和 PHP 上层的 代理集群有关系,常见的代理集群是 Nginx/Openrestry

1、关于代理集群限制上传

代理集群这里以常用的 Nginx 为例介绍

1.1、client_max_body_size

默认为1M,可以配置在 http 或者 server 、location 中。

一般的建议是配置在 具体的server中,因为nginx支持多server,每个server的功能不同,对于如果有上传需求时,上传的大小限制也许也不一样。

1.2、client_body_timeout

默认值是60秒,需要注意的是这个参数的含义:

Nginx的 client_body_timeout控制的仅仅是 请求主体 body 的传输时间。

所以如果在上传大文件的时候,客户端配置超时时间大于60秒,且实际上传时间也超过了60秒,上传的请求并不会中断。

Nginx 会继续等待客户端发送请求的其余部分,即使超过了client_body_timeout的设置。

只有当整个请求完成或客户端关闭连接时,NGINX才会终止该请求

1.3、client_header_timeout

读取请求头的超时时间,默认为60秒,和上面 client_body_timeout 读取body体一样,仅读取 header头部的时间。

从上面三个参数知道,Nginx 侧实际限制文件上传时,只限制文件的大小,不限制文件上传的时长

如果要限制文件的时长:

1)通过后端服务,比如PHP的 max_execution_time

2)通过客户端ajax请求配置timeout超时

附加配置项说明:

● proxy_connect_timeout

Nginx转发到后端的请求无法被立即处理时,被放到Nginx的待处理池中等待被处理的时间,默认为60秒。

● proxy_read_timeout

Nginx请求被后端处理后。Nginx等待后端处理结果的等待时间,默认为60秒。也就是服务器的响应时间

● proxy_send_timeout

Nginx请求被后端处理后,后端把数据返回给Nginx的时间,默认60秒。

2、关于PHP上传文件限制

PHP侧限制文件上传,一共有三个参数共同决定

2.1、max_execution_time

页面最的长执行时间,默认为30秒。
即使页面上传时设置超时时间超过这个值,30秒之后也会中断请求,页面报错。

配置为0,表示不做时间限制

2.2、post_max_size

定义POST上传数据时最大可上传的大小,默认为2M。

如果实际POST过来的数据大于该值,则 $_POST和 $_FILES 这两个全局变量就为空值。

2.3、upload_max_filesize

定义上传文件时可接受的文件大小的最大值。默认为8M。这个根据实际业务场景配合Nginx进行调整

和文件上传有关的配置项说明:

● file_uploads = On 开启文件上传

● post_max_size = 50M 最大Post数据大小

● upload_max_filesize = 50M 最大上传文件大小

● upload_tmp_dir = ‘/tmp/phpupload’ 上传时临时目录,默认为空,系统指定

● max_execution_time = 120 单个PHP脚本在服务器最大执行时间,单位为秒

● max_input_time = 120 PHP脚本从客户端接受请求数据的最大时间,这个时间包含了POST、GET和文件上传等数据

● memory_limit = 100M 单个PHP脚本能申请到的最大内存空间

3、前端配置的上传文件时间限制

一般是在ajax请求中设置timeout属性来设置上传的超时时间限制

DOCTYPE html><html lang="en">  <head>    <title>测试超时响应title>    <script class="lazy" data-src="./js/jquery/jquery.js">script>  head>  <body>    <button>发起超长时间请求button>    <script>      document.querySelector('button').onclick = function() {        $.ajax({          url: 'http://127.0.0.1:8080/uploadBigFile',          // 通过timeout属性设置超时,单位是毫秒          timeout: 120000,          error: function(err) {            console.log(err)          },          success: function(res) {            console.log(res)          }        })      }    script>  body>html>

所以在排查完毕 Nginx、PHP服务本身确认上传限制都在合理的范围之内还有超时报错那么很大可能是 客户端做了 timeout 超时限制


今天的学习就分享都这里,感觉喜欢改分享的,可以关注个人微信公众号 搜 DailyJobOps 或者 全栈运维

来源地址:https://blog.csdn.net/eaglecolin/article/details/130932276

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Nginx/PHP文件上传限制说明

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

php上传文件大小怎么限制

可以通过以下几种方法来限制PHP上传文件的大小:1. 在php.ini文件中设置上传文件的最大大小:- 打开php.ini文件,找到upload_max_filesize和post_max_size两个配置项。- 修改这两个配置项的值为所需
2023-10-18

php文件上传大小限制的方法

这篇文章主要介绍了php文件上传大小限制的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。php有什么特点1、执行速度快。2、具有很好的开放性和可扩展性。3、PHP支持多种
2023-06-14

Nginx在Docker中的文件上传配置与限制(如何在Docker中为Nginx配置文件上传功能?)

在Docker中配置Nginx文件上传时,需要进行特殊设置。在Nginx配置文件中调整上传文件大小限制、临时目录和存放目录。使用-v参数将主机目录挂载到容器中,作为上传文件存放目录。确保目录具有适当权限。测试文件上传功能并注意文件大小和类型限制、临时目录大小和安全考虑。优化性能调整缓冲大小和超时设置。
Nginx在Docker中的文件上传配置与限制(如何在Docker中为Nginx配置文件上传功能?)
2024-04-02

php如何设置上传文件大小限制

这篇文章将为大家详细讲解有关php如何设置上传文件大小限制,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。方法:首先打开“php.ini”文件;然后将“upload_max_filesize”、“post_
2023-06-14

php如何修改上传文件最大限制

本文小编为大家详细介绍“php如何修改上传文件最大限制”,内容详细,步骤清晰,细节处理妥当,希望这篇“php如何修改上传文件最大限制”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。修改方法:1、打开php.ini配
2023-07-05

PHP中怎么解决上传文件大小限制

本篇文章给大家分享的是有关PHP中怎么解决上传文件大小限制,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。PHP上传文件大小限制解决方法:***:在php.ini里面查看如下行:
2023-06-17

tomcat上传文件限制怎么配置

要配置Tomcat的文件上传限制,可以通过修改Tomcat的配置文件来完成。具体步骤如下:打开Tomcat的目录,找到conf文件夹。在conf文件夹中找到server.xml文件,用文本编辑器打开该文件。在server.xml文件中找
tomcat上传文件限制怎么配置
2024-02-29

怎么在php中修改上传文件的大小限制

怎么在php中修改上传文件的大小限制?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。修改PHP上传文件大小限制的方法1、修改max_execution_time值
2023-06-15

github上传文件大小限制怎么配置

Github对于单个文件的大小限制是100MB,并且对于整个仓库的大小限制是1GB。如果要上传超过这些限制的文件,可以考虑以下几种方法:使用Git LFS(Large File Storage):Git LFS是一个Git扩展,可以用于存储
2023-10-26

tomcat上传文件大小限制怎么设置

要设置Tomcat上传文件的大小限制,可以通过以下步骤进行操作:打开Tomcat的配置文件`server.xml`。该文件通常位于Tomcat安装目录下的`conf`文件夹中。找到一个名为``的元素,该元素通常用于配置Tomcat连接器。在
2023-10-26

SpringBoot怎么通过配置文件限制文件上传大小

这篇文章主要介绍SpringBoot怎么通过配置文件限制文件上传大小,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!通过配置文件(yml,properties)限制文件上传大小properties类型配置文件设置# s
2023-06-29

php怎么设置附件上传大小的限制

本篇内容介绍了“php怎么设置附件上传大小的限制”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!修改php.ini配置文件在php.ini配置
2023-07-05

Spring MVC文件上传大小和类型限制以及超大文件上传bug问题

在上一篇文章中,主要介绍了Spirng MVC环境下的正常情况下文件上传功能实现。在实际开发的时候,还会涉及到上传文件大小和类型的限制,接下来就会对Spirng MVC环境下文件上传大小和类型的限制进行介绍,还会讲解到文件上传大小tomc
2023-05-30

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录