php/laravel/修改上传文件大小

该配置示例展示了如何通过Nginx、PHP和Swoole优化服务器以支持大文件上传和保持高效率。配置包括Nginx的upstream和location部分,设置代理缓冲和超时,以及PHP的ini文件调整,如最大执行时间和内存限制。此外,还展示了Laravel中Swoole的配置,包括工作模式、任务处理和心跳检测等参数。为了确保大文件上传的安全性,推荐使用AetherUpload-Laravel库。

1.nginx

upstream swoole {
    # Connect IP:Port, php is the name of php container
    server php:5200 weight=5 max_fails=3 fail_timeout=7200s;
    keepalive 16;
}

server {
    ...

    client_max_body_size  10240m;
    client_body_buffer_size 10240m;
    location =/ws {
        
        ...

        proxy_http_version 1.1;
        proxy_set_header Connection "";
         proxy_read_timeout 7200;
        proxy_send_timeout  7200;
        client_max_body_size  10240m;
        client_body_buffer_size 10240m;
        client_body_temp_path /var/www/docker/nginxtmp;
        proxy_max_temp_file_size 10240m;

        proxy_buffer_size 10240m;
        proxy_buffers 10 2048m;
        proxy_busy_buffers_size 10240m;
    }    

}

2.php.ini

max_execution_time = 7200
max_input_time = 7200
default_socket_timeout = 7200

memory_limit = 10240M
post_max_size = 10240M
upload_max_filesize = 10240M

3./config/laravel.php

...
 'swoole'                   => [
        'daemonize'          => env('LARAVELS_DAEMONIZE', false),
        'dispatch_mode'      => 2,
        'reactor_num'        => env('LARAVELS_REACTOR_NUM', function_exists('swoole_cpu_num') ? swoole_cpu_num() * 2 : 4),
        'worker_num'         => env('LARAVELS_WORKER_NUM', function_exists('swoole_cpu_num') ? swoole_cpu_num() * 2 : 8),
        'task_worker_num'    => env('LARAVELS_TASK_WORKER_NUM', function_exists('swoole_cpu_num') ? swoole_cpu_num() * 2 : 8),
        'task_ipc_mode'      => 1,
        'task_max_request'   => env('LARAVELS_TASK_MAX_REQUEST', 51200 * 1024 * 1024),
        'task_tmpdir'        => @is_writable('/dev/shm/') ? '/dev/shm' : '/tmp',
        'max_request'        => env('LARAVELS_MAX_REQUEST', 51200 * 1024 * 1024),
        'open_tcp_nodelay'   => true,
        'pid_file'           => storage_path('laravels.pid'),
        'log_file'           => storage_path(sprintf('logs/swoole-%s.log', date('Y-m'))),
        'log_level'          => 4,
        'document_root'      => base_path('public'),
        'buffer_output_size' => 51200 * 1024 * 1024,
        'socket_buffer_size' => 51200 * 1024 * 1024,
        'package_max_length' => 51200 * 1024 * 1024,
        'reload_async'       => true,
        'max_wait_time'      => 7200,
        'enable_reuse_port'  => true,
        'enable_coroutine'   => false,
        'http_compression'   => false,

        // Slow log
        // 'request_slowlog_timeout' => 2,
        // 'request_slowlog_file'    => storage_path(sprintf('logs/slow-%s.log', date('Y-m'))),
        // 'trace_event_worker'      => true,

        'heartbeat_idle_time'      => 600,
        'heartbeat_check_interval' => 60,


...

4.另外说明

如果不配置服务器,和给上传大文件安心一点,就使用这个

https://github.com/peinhu/AetherUpload-Laravelicon-default.png?t=LA92https://github.com/peinhu/AetherUpload-Laravel

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天道酬勤~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值