当前位置:首页 > PHP > 正文内容

php event-stream flush nginx不生效的解决方式

高老师1年前 (2024-05-17)PHP314

一般情况网上的代码在apache上面是正常执行,nginx是不会生效的,原因:

(1)、nginx默认的缓冲区配置很大,你输出的内容不能填充满缓冲区,所以不能触发发送给客户端,配置如下:

fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;

可以调整配置更小一点,或者使用php先输出一堆空填充信息,让缓冲区溢满。

(2)、nginx默认开启gzip压缩,压缩的本质是内容越长压缩效率越好,因此gzip需要获取完整的内容压缩后发送给客户端,可以关闭此配置

当然也可以直接不修改nginx配置,使用php解决,浪费我2天下班时间,特此记录。

header('Content-Type: text/event-stream'); // 以事件流的形式告知浏览器进行显示
header('Cache-Control: no-cache');         // 告知浏览器不进行缓存
header('X-Accel-Buffering: no');           // 关闭加速缓冲

echo '输出信息';

ob_flush(); 
flush();


扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/763.html

分享给朋友:

“php event-stream flush nginx不生效的解决方式” 的相关文章

php 地址转换经纬度

php 地址转换经纬度

//$ak开发密钥,$cityname城市名称(支持省县乡详细地址) public  function   getposition($ak,$cityname){ $callback=array('lng'=>0,'l...

php  RabbitMQ消息队列

php RabbitMQ消息队列

(1).config.php 配置文件<?php /**  * RabbitMQ_Config  */ $config = [     'host' => ...

php redis事务

php redis事务

概念请参考w3school文章: redis watch ,redis exec (看完基本秒懂)(1)基本事务://连接本地的 Redis 服务 $redis = new Redis(); $redis->con...

tp orm事务提交未执行的教训和总结

tp orm事务提交未执行的教训和总结

最近在项目中处理一个关于商品数据重复需要删除多余的商品记录,但是删除一条商品必然要把关联的其他表商品的id和其他商品信息更换为正确的,删除一个商品记录,同时要去修改100多张表的关联商品数据,在项目中引用了tp orm 1.2版本,由于项目是php5.6版本,没法使用最新orm,在代码中每处理1个商...

php定时任务,php定时器,php定时器,php定时任务管理,php定时任务框架,php实现定时任务,php定时任务系统

php定时任务,php定时器,php定时器,php定时任务管理,php定时任务框架,php实现定时任务,php定时任务系统

        本教程使用的定时任务基于EasyTak实现,EasyTask官方参考文档:https://gitee.com/392223903/EasyTask首先我们必须明白PHP的定时器只能基于CLI命令行形式运行...

php is_dir函数结果不准确,php file_exists函数结果不准确,php is_file函数结果不准确

php is_dir函数结果不准确,php file_exists函数结果不准确,php is_file函数结果不准确

php中stat(), lstat(), file_exists(), is_writable(), is_readable(), is_executable(), is_file(), is_dir(), is_link(), filectime(), fileatime(), filemtime...