首页
学习
活动
专区
圈层
工具
发布

php提前响应请求继续执行代码(伪异步)

在很多业务需求中,我们都可能需要先让php给浏览器输出,然后在后台慢慢处理其他不用输出耗时的业务. 那么,php该怎么实现这个功能呢?...ignore_user_abort(true); 首先,我们先来了解下ignore_user_abort(true);这个函数 这个函数可以忽略客户机的断开,继续执行php代码 那到底这个用来干啥的呢?...buffer缓冲区的文章中,有讲到过浏览器实时输出,刷新缓冲区可以让php+web服务器的输出变成实时输出,不再需要等待脚本结束才显示内容.然而,apache和nginx的实现方式也有所不同 的缓冲区,输出数据     sleep(1); } //nginx缓冲区 ob_end_clean(); ob_implicit_flush(); header...)"; ob_flush();//刷新PHP自身缓冲区 flush();//刷新(特指apache)web服务器的缓冲区,输出数据 //这里还在巴拉巴拉处理事情\ $i=0; while(1){ //注意

4.3K11

nginx,ingress-nginx日常维护及报错

request_terminate_timeout用于设置当某个php脚本运行最长时间,若超出php-fpm进程管理器强行中止当前程序,并关闭fastcgi和nginx的网络连接,然后nginx中就会出现...这样将php的request_terminate_timeout设置为较大的值或0,可减少因php脚本执行时行过长导致nginx产生Connection reset by peer错误。...脚本语言,就必须通过配置fastcgi模块来提供对php支持。...3.5 FastCGI缓冲配置主要参数 fastcgi_buffers 4 64k 这个参数指定了从FastCGI进程到来的应答,本地将用多少和多大的缓冲区读取,假设一个PHP或JAVA脚本所产生页面大小为...这样将php的request_terminate_timeout设置为较大的值或0,可减少因php脚本执行时行过长导致nginx产生Connection reset by peer错误。

13.7K21
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Nginx21】Nginx学习:FastCGI模块(三)缓冲区与响应头

    fastcgi_buffers 为单个连接设置用于从 FastCGI 服务器读取响应的缓冲区的数量和大小。 fastcgi_buffers 8 4k|8k; 默认情况下,缓冲区大小等于一内存页。...这个配置项是创建几个缓冲区用的,比如设置成 8 4k ,表示的就是 8*4=32k 的缓冲区,而上面的 fastcgi_buffer_size 是第一个头缓冲区的大小,不包含在这边,因此,整个缓冲区的大小就是...响应头处理 在 FastCGI 的处理中,HTTP 请求标头字段作为参数传递给 FastCGI 服务器。在作为 FastCGI 服务器运行的应用程序和脚本中,这些参数通常作为环境变量提供。...fastcgi_ignore_headers 忽略对来自 FastCGI 服务器的某些响应头字段的处理。...fastcgi_ignore_headers field ...; 以下字段可以忽略:“X-Accel-Redirect”、“X-Accel-Expires”、“X-Accel-Limit-Rate”

    1.7K60

    PHP常用配置

    配置示例: precision = 14 5. output_buffering:设置是否使用输出缓冲,或者设置输出缓冲区的大小。使用输出缓冲会使性能稍稍下降。...例如,假设你希望将输出返回给浏览器之前先对所有输出进行压缩,可以将该项配置为PHP的压缩处理函数“ob_gzhandler”。...7. zlib.output_compression:通过设置为“On”或“Off”决定是否在输出返回给浏览器之前先自动压缩,通过赋一个整数值,可以启用输出压缩,同时设置压缩缓冲区大小。...9. implicit_flush:启用时,每次调用print()或echo(),以及完成各个嵌入的HTML块后,将自动清除或刷新其内容的输出缓冲区。...性能相关配置: 1. realpath_cache_size:指定PHP使用的realpath(规范化的绝对路径名)缓冲区大小。在PHP打开大量文件的系统上应当增大该值以提高性能。

    3.7K41

    Nginx 0.8.53 FastCGI参数详解

    4k/8k ; 指定本地需要用多少和多大的缓冲区来缓冲FastCGI的应答,如上所示,如果一个php脚本所产生的页面大小为256k,则会为其分配16个16k的缓冲区来缓存,如果大于256k,增大于256k...的部分会缓存到fastcgi_temp指定的路径中,当然这对服务器负载来说是不明智的方案,因为内存中处理数据速度要快于硬盘,通常这个值的设置应该选择一个你的站点中的php脚本所产生的页面大小的中间值,比如你的站点大部分脚本所产生的页面大小为...,如果是在长时间运行后端应用程序,但是一直每一输出的情况,需要提高此值。...fastcgi_ignore_client_abort 如果当前连接请求FastCGI服务器失败,为防止其与nginx服务器断开连接,可以用这个指令。 用来决定忽略用户取消的请求。...这个指令可以用在为那些不是经常改变的后端动态输出创建本地拷贝的过程中。

    1.6K20

    Nginx负载均衡与反向代理

    ,但是仅用于linux2.6以上内核,可以大大提高nginx的性能     worker_connections 1024; #单个后台worker process进程的最大并发链接数     # multi_accept...            index index.php index.html index.htm;   #定义首页索引文件的名称             fastcgi_pass  www.xx.com...expires 30d;         }         #PHP 脚本请求全部转发到 FastCGI处理. 使用FastCGI默认配置.         ... index.php;             fastcgi_param SCRIPT_FILENAME /home/www/www$fastcgi_script_name;             ...;#定义首页索引文件的名称             proxy_pass  http://mysvr;#请求转向mysvr 定义的服务器列表             #以下是一些反向代理的配置可删除

    1.1K150

    【提升】Nginx常见故障502等解决方案汇总

    检查一下网站程序有没有问题?一般小偷站点常常会出现内存溢出。 检查一下/var/log/目录下的日志,看看是不是有人爆破SSH和FTP端口? SSH、FTP遭到穷举也会占用大量内存。...我们先检查fastcgi是否在运行 检查系统Fastcgi进程运行情况 除了第一种情况,fastcgi进程数不够用、php执行时间长、或者是php-cgi进程死掉也可能造成nginx的502错误 运行以下命令判断是否接近...FastCGI进程,如果fastcgi进程数接近配置文件中设置的数值,表明worker进程数设置太少 netstat -anpo | grep "php-cgi" | wc -l FastCGI执行时间过长...查阅了一下资料,大意是nginx缓冲区有一个bug造成的,我们网站的页面消耗占用缓冲区可能过大。参考老外写的修改办法增加了缓冲区容量大小设置,502问题彻底解决。...这个值是max_execution_time,就是fast-cgi的执行脚本时间。

    1.8K20

    中小型网站架构分析及优化

    php-fpm进程来解析php脚本。...也就是说用户请求先到nginx,nginx再将动态解析交给fastcgi,fastcgi启动php-fpm解析php脚本。所以我们有必要对fastcgi和php-fpm进行适当的参数优化。...#指定接收FastCGI应答的超时时间     fastcgi_buffer_size 64k;      #指定读取FastCGI应答第一部分需要多大的缓冲区     fastcgi_buffers...4 64k;      #指定本地需要用多少盒多大的缓冲区来缓冲FastCGI的应答请求     fastcgi_busy_buffers_size 128k;        fastcgi_temp_file_write_size...有了缓存器就会把每次编译后的数据缓存到共享内存中,下次访问直接使用缓冲区已编译好的代码,从而避免重复的编译过程,以加快其执行效率。因此PHP网站使用缓存器是完全有必要的!

    2.1K40

    nginx面试题(1)

    Proxy Buffer不够 如果你用了Proxying,调整 proxy_buffer_size 16k; proxy_buffers 4 16k; (6).php脚本执行时间过长 将php-fpm.conf...=300; #接收fastcgi应答超时时间,同理也是2次握手后 fastcgi_buffer_size=64k; #读取fastcgi应答第一部分需要多大缓冲区,该值表示使用1个64kb的缓冲区读取应答第一部分...(应答头),可以设置为fastcgi_buffers选项缓冲区大小 fastcgi_buffers 4 64k;#指定本地需要多少和多大的缓冲区来缓冲fastcgi应答请求,假设一个php或java脚本所产生页面大小为...,多个连接(万级别)可以对应一个进程 8.fastcgi与cgi的区别 cgi: web服务器会根据请求的内容,然后会fork一个新进程来运行外部c程序(或perl脚本...), 这个进程会把处理完的数据返回给...如果下次用户还请求改动态脚本,那么web服务器又再次fork一个新进程,周而复始的进行。

    56220

    网站打开缓慢排查思路

    -x -k 1 100查看IO情况,-x表示输出详细信息,-k表示以KB单位显示,后面分别表示时间间隔和刷新次数 通过ss或netstat查看连接数情况,可以对/etc/sysctl.conf的一些内核参数做一些优化...> 5、调整nginx单个进程允许的客户端最大连接数 ``` enents {     worker_connections 65535;        #一个worker进程的并发 } 1 2 3...128k;              #用于指定读取FastCGI应答第一部分需要用多大的缓冲区,这个值表示将使用一个128K的缓冲区读取应答的第一部分(应答头),可以设置为fastcgi_buffers...选项指定的缓冲区大小 fastcgi_buffers 4 128k;                #指定本地需要用多少和多大的缓冲区来缓冲FastCGI的应答请求,如果一个PHP脚本所产生的页面大小的中间值...,如果站点大部分脚本所产生的页面大小为256KB,那么可以把这个值设置为“16 16K”  “4 64"等 fastcgi_busy_buffers_size 256k;  #该值的默认值为fastcgi_buffers

    4K20
    领券