Laravel 使用 octane,请求超时 (已解决)

1. 环境说明

1、laravel 版本10.10.1

2、laravel/octane 版本2.1.1

3、OCTANE_SERVER 使用的是 swoole 服务器

1. 问题描述?

1、请求的Url

# post请求,form数据{intro}

curl -X POST "http://xxxx.com/admin/designer.group_chat_list/edit?id=1" -d "notice=$notice"

2、参数设置
php:post_max_size = 8M
mysql:notice text COMMENT '群公告'

'swoole' => [
    'options' => [
        'log_file' => storage_path('logs/swoole_http.log'),
        'package_max_length' => 10 * 1024 * 1024,
    ],
],

3、问题截图

请求体除了 notice 的数据长度不一样,其他一致,最终结果是没有Response响应,请求超时

Laravel 使用 octane加速,请求超时?

Laravel 使用 octane加速,请求超时?

2. 自身排查过程

    /**
     * vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php
     */
    protected function sendRequestThroughRouter($request)
    {
        $this->app->instance('request', $request);

        Facade::clearResolvedInstance('request');

### 打印日志
logger()->info('request', [$request->all(), $request->url()]);

        $this->bootstrap();

        return (new Pipeline($this->app))
                    ->send($request)
                    ->through($this->app->shouldSkipMiddleware() ? [] : $this->middleware)
                    ->then($this->dispatchToRouter());
    }
        // 动态路由 (匹配 secondary/controller.action)
        Route::match(['get', 'post'], '/{secondary}.{controller}/{action}', function ($secondary, $controller, $action) {
            $namespace = config('admin.controller_namespace') . $secondary . '\\';
            $controller = array_reduce(array_filter(explode('_', $controller)),function ($carry,$item){
                return $carry . ucfirst($item);
            },'');
            $className = $namespace . ucfirst($controller . "Controller");

### 打印日志
logger()->info('route', [$className, $controller, $action]);

            if (class_exists($className)) {
                $controller = App::make($className);
                return App::call([$controller, $action]);
            }
            return abort(404);
        });
# 正常请求日志
[2024-03-06 21:09:48] test.INFO: request [{"id":"1","notice":"Spring Festival","_token":"nFuRJdToJdPTKtV63PXYasX9pSnMAypoRHj63q7C"},"/admin/designer.group_chat_list/edit"] 
[2024-03-06 21:09:48] test.INFO: route ["App\\Http\\Controllers\\admin\\designer\\GroupChatListController","GroupChatList","edit"] 

# 异常请求日志
[2024-03-06 21:12:05] test.INFO: request [{"id":"1","notice":"Spring FestivalSpring......Festival","_token":"nFuRJdToJdPTKtV63PXYasX9pSnMAypoRHj63q7C"},"/admin/designer.group_chat_list/edit"] 

最终排查的结果是,异常请求无法正常的到达路由,目前没有思绪往下排查了,有没有遇到这类问题的同志可以指导一下 –

3. 问题所在

  • 大致的排查出原因了,跟系统环境有关系,test内网环境使用的是Ubuntu 22.04.2 LTS, pre环境使用 CentOS Linux 7, 算是基本解决了,但还没具体分析出是什么系统参数设定导致的
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 5

配置下 package_max_length 文档入口 learnku.com/docs/laravel/9.x/octan...

1个月前 评论
打酱油的和尚 (楼主) 1个月前
保安 (作者) 1个月前

抓包看一下

1个月前 评论

swoole的版本是多少

1个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!