当前位置: 首页 > news >正文

php flush实时输出线上环境好使,本地环境等待一段时间后一次性输出结果的原因

近期对接deepseek接口时为了拥有较好的用户体验,等待答案返回时采用了flush分布输出,但是线上环境下可以正常分布输出,同样代码在本地总是等待许久后一次性出结果,排查许久,发现竟然是本地和线上不同的php加载模式导致。

1、线上环境与本地环境区别:

1)线上环境:

Server APIFPM/FastCGI

2)本地环境:

Server APICGI/FastCGI
2. PHP-FPM 与 mod_fcgid 差异

确认本地环境是否通过 mod_fcgid 运行 PHP,而线上使用 mod_php。这两种方式处理输出缓冲的机制不同:

  • mod_php:PHP 直接嵌入 Apache,flush() 可能更直接
  • mod_fcgid:PHP 作为独立进程运行,需要额外配置避免缓冲
  • mod_php:通常会逐秒输出数字(如果未被浏览器缓冲)。
  • mod_fcgid:可能会在 5 秒后一次性输出所有内容(默认缓冲)。

不同模式下的加载方式不一致,apache的配置文件 httpd.conf 中做以下修改即可。

<IfModule mod_fcgid.c>
    # 禁用输出缓冲(关键设置)
    FcgidOutputBufferSize 0
    
    # 增加I/O超时时间,避免长时间操作被中断
    FcgidIOTimeout 3600
    FcgidConnectTimeout 60
    
    # 可选:限制每个PHP进程的请求数,防止内存泄漏
    FcgidMaxRequestsPerProcess 500
    
    # 可选:控制进程数量,根据服务器资源调整
    FcgidMaxProcesses 20
    FcgidMinProcessesPerClass 2
    FcgidMaxProcessesPerClass 8
</IfModule>

# 在httpd.conf中注释掉可能干扰的模块
# LoadModule deflate_module modules/mod_deflate.so
# LoadModule cache_module modules/mod_cache.so
 

KeepAlive Off

http://www.lqws.cn/news/546859.html

相关文章:

  • 跨芯片 AI 算子库 FlagGems 正式加入PyTorch 基金会生态项目体系
  • MyBatis中的SQL理解
  • uniappx 安卓app项目本地打包运行,腾讯地图报错:‘鉴权失败,请检查你的key‘
  • Unity性能优化-渲染模块(1)-CPU侧(1)-优化方向
  • 基于springboot的火锅店点餐系统
  • 分布式存储架构的优势
  • 河北对口计算机高考C#笔记(2026高考适用)---完结版~~~~
  • GPS不只是导航,实时定位追踪系统如何玩转智能时代?
  • 深度学习框架入门指南:PyTorch 核心实战
  • 第N5周:Pytorch文本分类入门
  • 使用GDAL库统计不同分区内的灾害点分布情况,计算灾害相对密度等统计指标
  • Spring Boot 3.2.11 Swagger版本推荐
  • Python 数据分析与可视化 Day 9 - 缺失值与异常值处理技巧
  • 从0到100:房产中介小程序开发笔记(中)
  • css去掉换行小工具 去掉css换行 style样式去掉换行
  • flink同步kafka到paimon,doris加速查询
  • 大数据赋能智能家居:打造你贴心的“数字管家”
  • 飞往大厂梦之算法提升-day09
  • ssh -T git@github.com失败后解决方案
  • Google机器学习实践指南(逻辑回归损失函数)
  • RabitQ 量化:既省内存又提性能
  • 华为云Flexus+DeepSeek征文 | 基于华为云ModelArts Studio平台搭建AI Markdown编辑器
  • 【iSAQB软件架构】四大架构视图利益相关者
  • 【开源项目】「安卓原生3D开源渲染引擎」:Sceneform‑EQR
  • 机器学习6——线性分类函数
  • PHP「Not enough Memory」实战排错笔记
  • 小程序 API 开发手册:从入门到高级应用一网打尽
  • 基于[coze][dify]搭建一个智能体工作流,抓取热门视频数据,自动存入在线表格
  • Python打卡:Day38
  • 华为数通认证:适合谁的技术进阶之路?