好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

php抓取504 php抓取网站快照图代码

很多站长朋友们都不太清楚php抓取504,今天小编就来给大家整理php抓取504,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 PHP 同时多次POST数据到同一网站相同接口获取返回数据 用curl 总是会出现504错误? 2、 Nginx | 抓包让你搞清楚 502 和 504 的区别 3、 php框架用的tp3.2,调用外部地址超时,大并发,为什么把整站都搞成慢了,访问直接504了? 4、 php进程超时接口返回504错误分析 5、 php504错误 6、 访问php页面出现504 Gateway Timeout 怎么解决 PHP 同时多次POST数据到同一网站相同接口获取返回数据 用curl 总是会出现504错误?

具体什么报错,有图片吗?

由于nginx默认的fastcgi进程响应缓冲区太小造成,这种情况下导致fastcgi进程被挂起,如果fastcgi服务队这个挂起处理不是很好的话,就可能提示“504 Gateway Time-out”错误。

PHP环境的配置问题,这里我们需要对php-fpm和nginx进行配置修改。因为这种情况下,也会出现“504 Gateway Time-out”错误提示。

Nginx | 抓包让你搞清楚 502 和 504 的区别

php-fpm不启动,这样可以模拟502报错,nginx配置文件如下。

tcpdump进行抓包,命令: tcpdump -i any port 9000 -w http502.pcap 。

用 Wireshark 查看 http502.pcap 抓包文件里面的内容。

nginx请求php-fpm 9000端口,9000端口有回包,但是给了个 RST 。

nginx配置不变,这次将php-fpm启动起来,并且确定能够正常访问。

测试响应正常的200状态码,用 iptables 拦截所有客户端来访问9000端口,这样可以模拟504报错。

iptables命令: iptables -A INPUT -p tcp --dport 9000 -j DROP 。

然后再用tcpdump抓包,tcpdump命令: tcpdump -i any port 9000 -w http504.pcap 。

依旧是用 Wireshark 查看抓包内容。

nginx请求php-fpm 9000端口,9000端口没有回包,全是 SYN 握手包。

php框架用的tp3.2,调用外部地址超时,大并发,为什么把整站都搞成慢了,访问直接504了?

你要明确,你处理不处理业务,大并发流量都要经过你这里(虽然你这里带用了外部接口来处理业务)。当你的吞吐量遇到瓶颈,那就阻塞了,变得非常卡了,最后直至宕机停止服务。

php进程超时接口返回504错误分析

在一次接口测试中,发现返回的http 504 time out 的错误,然后查看了php-fpm的错误日志,发现了如下错误

从表现上看,是php进程超时导致的进程被kill了,那么这个超时时间以及kill的机制是跟哪些参数有关呢,这里系统这里一下。

Nginx服务一般因为php的错误或者超时会有两种错误码502 bad Gateway 或者 504 Gateway Time-out

一种情况是php产生了语法错误,比如循环调用、变量作用域错误、方法不存在等,如果开启错误日志输出的话,这种错误在php-fpm的错误日志中是可以看到调用栈信息的。

另外一种情况可能就是超时引起的php-fpm主动kill的情况,在php.ini和php.fpm中有两个配置项,用来管理php脚本的最大执行时间

当php脚本的执行时间超过这个时间时,PHP-FPM不只会终止脚本的执行,还会终止执行脚本的Worker进程。所以Nginx会发现与自己通信的连接断掉了,就会返回给客户端502错误。

以顶部的错误为例,当报502错误是,nginx的errorlog中有如下日志,:

所以只需将这两项的值调大一些就可以让PHP脚本不会因为执行时间长而被终止了。request_terminate_timeout可以覆盖max_execution_time,

所以如果不想改全局的php.ini,那只改PHP-FPM的配置就可以了。

此外要注意的是Nginx的upstream模块中的max_fail和fail_timeout两项。这两个配置表示在fail_timeout事件内,如果fail的测试达到max_fail,那么在接下来的fail_timeout时间内,Nginx都会认为上游服务器挂掉了,都会返回502错误。

所以可以将max_fail调大一些,将fail_timeout调小一些。

PHP-FPM设置的脚本最大执行时间已经够长了,但执行耗时PHP脚本时,发现Nginx报错从502变为504了。这是为什么呢?

因为我们修改的只是PHP的配置,Nginx中也有关于与上游服务器通信超时时间的配置

以Nginx超时时间为90秒,PHP-FPM超时时间为300秒为例,报504 Gateway Timeout错误时的Nginx错误访问日志如下:

调高这三项的值(主要是read和send两项,默认不配置的话Nginx会将超时时间设为60秒)之后,504错误也解决了。

而且这三项配置可以配置在http、server级别,也可以配置在location级别。担心影响其他应用的话,就配置在自己应用的location中吧。

要注意的是factcgi_connect/read/send_timeout是对FastCGI生效的,而proxy_connect/read/send_timeout是对proxy_pass生效的。

参考链接: 感谢分享!

php504错误

解决方式:

一般默认的fastcgi进程响应的缓冲区是8K,这时可以设置大一点,在nginx.conf里,加入:fastcgi_buffers 8 128k,这表示设置fastcgi缓冲区为8块128k大小的空间。

当然如果在进行某一项即时的操作, 可能需要nginx的超时参数调大点,例如设置成60秒:send_timeout 60;经过这两个参数的调整,一般不会再提示“504 Gateway Time-out”错误,问题基本解决。

有时候网站需要对php-fpm和nginx进行配置修改。因为这种情况下,也会出现“504 Gateway Time-out”错误提示。而这时候Nginx 504 Gateway Time-out的含义就是所请求的网关没有请求到,简单来说就是没有请求到可以执行的PHP-CGI。

解决方式:

更改php-fpm的几处配置即可:

把max_children由之前的10改为现在的30,这样就可以保证有充足的php-cgi进程可以被使用;

把request_terminate_timeout由之前的0s改为60s,这样php-cgi进程处理脚本的超时时间就是60秒,可以防止进程都被挂起,提高利用效率。

接着再更改nginx的几个配置项,减少FastCGI的请求次数,尽量维持buffers不变:

fastcgi_buffers由 4 64k 改为 2 256k;

fastcgi_buffer_size 由 64k 改为 128K;

fastcgi_busy_buffers_size 由 128K 改为 256K;

fastcgi_temp_file_write_size 由 128K 改为 256K。

重新加载php-fpm和nginx的配置,再次测试,如果没有出现“504 Gateway Time-out”错误,问题便解决了。

解决方式:

将php-fpm的处理方式改成apache模式即可。

访问php页面出现504 Gateway Timeout 怎么解决

PHP的权限有问题。检察一下PHP目录有没有kangle的权限,如果权限正常,看看是不是安装了360,安全狗待服务器防御软件,有就卸载后重启服务器再试。

关于php抓取504的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php抓取504 php抓取网站快照图代码的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did209281
更新时间:2023-05-03   阅读:16次

上一篇: 用友库存php接口 用友库存php接口怎么用

下一篇:php怎么调用adb php怎么调用dll

相关资讯

最新资料更新

  • 1.php微信爬虫 微信爬虫访问是什么
  • 2.php数值内存溢出 php大数组内存溢出
  • 3.php配置外网访问 phpstudy外网映射
  • 4.php如何页面静态化 php实现页面静态化
  • 5.phpmkdir-1的简单介绍
  • 6.php设备判断在线 php判断用户在线状态
  • 7.php提示重复提交 php api防止重复提交
  • 8.php获取数组坐标 php获取数组的值
  • 9.phpjson提交 phppost提交
  • 10.订餐系统php 订餐系统升级维护,请前往
  • 11.php重命名不了 php 命名空间 通俗易懂
  • 12.php文字合到图片 php 图片合成
  • 13.phpmysql当天 mysql 当天
  • 14.输出图片php 输出图片英文
  • 15.php汉字搜索 php 搜索字符串
  • 16.phpmywind phpmywind去重复
  • 17.phpwebim开发 php web开发实用教程
  • 18.php移动gps定位 functionsphp位置
  • 19.php的特点有. 简述什么是php?php的主要特点有哪些?
  • 20.php函数补全 php自动补全

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://www.haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]