You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于NGINX的Laravel REST API如何实现每秒200次并发请求处理

性能优化方案

1. Laravel 应用层优化(优先级最高,单请求性能提升最明显)

  • 开启生产环境全量缓存:执行php artisan optimize命令,缓存路由、配置、类映射,消除每次请求的初始化解析开销。
  • 替换PHP-FPM运行模式:部署Laravel Octane,采用Swoole/RoadRunner作为运行时,常驻内存运行Laravel容器,避免每次请求重新初始化框架,单请求耗时可降低50%以上。
  • 异步化非核心逻辑:审计表INSERT操作完全不需要同步执行,接入Laravel队列异步写入,若业务INSERT逻辑允许非实时返回,也可同步改为异步,单请求数据库操作可简化为仅1次SELECT查询。
  • 新增查询缓存:针对调用PostGIS函数的SELECT请求,增加Redis缓存,缓存时长按业务可接受的数据延迟设置,相同参数的重复请求直接从缓存返回,无需打到数据库。
  • 优化事务逻辑:如果三类数据库操作被包裹在同一事务中,尽可能缩短事务持有时间,不要在事务内执行与数据库无关的业务逻辑,减少锁等待。

2. PHP-FPM 配置优化

  • 替换ondemand模式为static模式,避免高并发下进程按需拉起的开销。M6G.8XLarge为32核实例,pm.max_children设置为64128即可(核数的24倍),无需设置5200的超大值,过多进程会导致上下文切换开销陡增。
  • request_terminate_timeout调整为2s,避免慢请求长时间占用worker进程。

3. NGINX 配置优化

  • worker_connections从1024调整为10240,支撑更高并发连接。
  • keepalive_requests从2000调整为10000,减少TCP握手开销。
  • 开启API响应brotli压缩,降低传输耗时。如果接口允许缓存,可新增fastcgi缓存规则,可缓存请求直接在NGINX层返回,无需透传到后端。

4. 数据库层优化

  • PGBouncer配置:default_pool_size调整为100,和PostgreSQL的max_connections适配,避免连接池不够用导致的请求排队。
  • PostgreSQL写入优化:如果业务允许极端场景下丢失1s内的写入数据,可设置synchronous_commit = off,写入性能可提升3~5倍,审计日志类非核心写入可单独设置该参数。
  • 慢查询优化:用EXPLAIN ANALYZE执行SELECT查询语句,确认PostGIS相关查询已命中GIST空间索引,并行执行逻辑正常,无全表扫描。

5. 架构扩展优化

  • 新增PostgreSQL只读从库,所有SELECT查询请求路由到从库,主库仅处理INSERT写入操作,读写分离后可大幅降低主库负载。

内容的提问来源于stack exchange,提问作者Dinesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 06:24:04