Skip to content

概述

当上传大尺寸高清图片、商品短视频、PDF 合同附件或大文件时,若提示 413 Request Entity Too Large上传文件超出大小限制,需要对 Nginx、PHP、Swoole 及系统配置 进行多层级协同调优。


四层限制协同修改步骤

Nginx 客户端请求体限制(client_max_body_size

Nginx 默认限制单次请求体最大为 1MB~2MB。

  1. 打开 Nginx 主配置 nginx.conf 或当前站点的 Nginx 配置文件。
  2. http { ... }server { ... } 块内加入或调大:
    nginx
    client_max_body_size 50m;
  3. 执行重载:nginx -t && nginx -s reload

PHP 上传限制(php.ini

  1. 打开 PHP 8.0 的 php.ini 配置文件。
  2. 调大以下两个参数(必须 post_max_size >= upload_max_filesize):
    ini
    upload_max_filesize = 50M
    post_max_size = 50M
  3. 重启 PHP-FPM 服务。

Swoole 协议单包大小限制(config/swoole.php

Swoole 作为常驻内存 HTTP 服务器,对接收的数据包大小有缓冲区限制:

  1. 打开项目根目录下的 config/swoole.php
  2. server.options 中确认或调大 package_max_length
    php
    'options' => [
        'package_max_length' => 50 * 1024 * 1024, // 50MB
        // ...
    ],

业务上传配置(config/upload.php

  1. 打开项目根目录下的 config/upload.php
  2. 确认单文件最大允许大小 filesize(单位为字节):
    php
    'filesize' => 50 * 1024 * 1024, // 50MB

重启 Swoole 守护进程生效

修改完成后,必须重启常驻的 Swoole 进程:

bash
supervisorctl restart ebaozu_v4

重启后即可支持大文件与长视频的顺畅上传。

承信租多门店租赁商城系统官方文档