导航:首页 > 编程语言 > phpcurl502

phpcurl502

发布时间:2022-04-23 20:51:50

php 502 bad gateway怎么解决

1. php.ini的memory_limit 过小(如果有个别php程序进程需要占用极大内存时这个必须注意)
2. php-fpm.conf中max_children或者max_requests 设置不合理(设置过小会因为没有足够的cgi进程处理请求,设置过大会出现一会儿有响应正常,一会儿等很久才有响应的情况,一般情况下children按 照内存计算,比如说1G设置64,2G128。这个根据实际情况自行调整。另外查看当前的PHP FastCGI进程数是否够用的命令为:netstat -anpo |grep “php-cgi” | wc -l 如果实际使用的“FastCGI进程数”接近预设的“FastCGI进程数”,那么,说明“FastCGI进程数”不够用,需要增大。)
3. 查看nginx错误日志,发现 pstream sent too big header while reading response headerfrom upstream ,则检查client head buffer,fastcgi buffer size是否过小,可设置为32K。
4. php程序执行时间过长而超时,检查nginx和fastcgi中各种timeout设置。(nginx 中的 fastcgi_connect_timeout 300;fastcgi_send_timeout 300 :fastcgi_read_timeout300; keepalive_timeout ; php-fpm中的request_terminate_timeout,php.ini中的max_execution_time)
5. php-fpm有一个参数 max_requests ,该参数指明了每个children最多处理多少个请求后便会被关闭。在大量处理请求下,如果该值设置过小会导致children频繁的自杀和建立而浪费 大量时间,若所有的children差不多都在这个时候自杀,则重建前将没有children响应请求,于是出现502 。可以将该值设置大一些或者是0[无限]。
如果你服务器并发量非常大,那只能先增加机器,然后按以下方式优化会取得更好效果;但如果你并发不大却出现502,一般都可以归结为配置问题,脚本超时问题。

1.php-fpm进程数不够用
使用netstat -napo |grep "php-fpm" | wc -l查看一下当前fastcgi进程个数,如果个数接近conf里配置的上限,就需要调高进程数。
但也不能无休止调高,可以根据服务器内存情况,可以把php-fpm子进程数调到100或以上,在4G内存的服务器上200就可以。
2. 调高调高linux内核打开文件数量
可以使用这些命令(必须是root帐号)
echo 'ulimit -HSn 65536'>> /etc/profile
echo 'ulimit -HSn 65536'>> /etc/rc.local
source /etc/profile
3.脚本执行时间超时
如果脚本因为某种原因长时间等待不返回,导致新来的请求不能得到处理,可以适当调小如下配置。
nginx.conf里面主要是如下
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
php-fpm.conf里如要是如下
request_terminate_timeout =10s
4.缓存设置比较小
修改或增加配置到nginx.conf
proxy_buffer_size 64k;
proxy_buffers 512k;
proxy_busy_buffers_size 128k;
5. recv()failed (104: Connection reset by peer) while reading response header fromupstream
可能的原因机房网络丢包或者机房有硬件防火墙禁止访问该域名
但最重要的是程序里要设置好超时,不要使用php-fpm的request_terminate_timeout,
最好设成request_terminate_timeout=0;
因为这个参数会直接杀掉php进程,然后重启php进程,这样前端nginx就会返回104: Connection reset by peer。这个过程是很慢,总体感觉就是网站很卡。
May 01 10:50:58.044162[WARNING] [pool www] child 4074, script'/usr/local/nginx/html/quancha/sameip/detail.php' execution timed out(15.129933 sec), terminating
May 01 10:50:58.045725 [WARNING] [pool www] child 4074 exited on signal 15SIGTERM after 90.227060 seconds from start
May 01 10:50:58.046818 [NOTICE] [pool www] child 4082 started
说一千道一万最重要的就是程序里控制好超时,gethostbyname、curl、file_get_contents等函数的都要设置超时时间。
另一个就是多说,这个东西是增加了网站的交互性,但是使用的多了反应就慢了,如果你网站超时且使用了多说是,可以关闭它。
6、自己遇到502的解决办法:
调整增大php 和Nginx 的backlog数。

㈡ php-fpm 正常启动,nginx也正常启动,但是为什么访问PHP是502

我觉得应该是sybase_connect连上数据库。
语法: int sybase_connect(string [servername], string [username], string [password]);
返回值: 整数函数种类: 数据库功能 本函数用来打开与 Sybase 数据库的连接。
参数 servername 为欲连上的数据库服务器名称。
参数 username 及 password 可省略,分别为连接使用的帐号及密码。
使用本函数需注意早点关闭数据库,以减少系统的负担。
连接成功则返回数据库的连接代号,失败返回 false 值。
您试试在将地址后面加了一个?a=1。如果还有不懂的可以去后盾人找找相关的教学视频看看,多看看不就懂得懂了,希望对你有用,给个采纳吧,谢谢

㈢ PHP使用curl的问题

这是PHP对于curl的一个解释,简单地说就是,curl是一个库,能让你通过URL和许多不同种的服务器进行勾搭、搭讪和深入交流,并且还支持许多协议。并且人家还说了curl可以支持https认证、http post、ftp上传、代理、cookies、简单口令认证等等功能啦。

㈣ 请教php curl 返回 Empty reply from server 原因

看返回的状态值就知道了,200表示请求成功,服务器正常运行,502表示服务器状态不正常

㈤ php使用curl上传文件为什么删掉一句无法执行

用php-fpm来管理我们的php启动时,按照如下的配置,就会自动生成/tmp/php-cgi.sock文件,然后再访问的话就不回出现502 Gateway错误了。
配置如下:
[global]
pid = /var/run/php-fpm.pid
error_log = /var/log/php-fpm.log
log_level = notice
[www]
listen = /tmp/php-cgi.sock
user = www
group = www
pm = dynamic
pm.max_children = 20
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

㈥ php通过curl发送post json给https产生502错误问题!

curl_setopt(self::$ch,CURLOPT_USERAGENT,"Mozilla/5.0(Macintosh;IntelMacOSX10_10_2)AppleWebKit/600.3.18(KHTML,likeGecko)Version/8.0.3Safari/600.3.18");

加一个这个参数模拟浏览器,看看有没有作用

有些服务器非浏览器访问就会502

㈦ nginx+php最近总是出现502,然后重启php-fpm就没事了,这是什么原因

用curl获取HTTP头,发现502状态码就执行重启php-fpm的命令。
url和cmd根据实际情况改成自己的。然后放到crontab里一分钟执行一次。

㈧ thinkphp定时脚本--执行控制器“502 Bad Gateway”超时怎么解决

Nginx的问题,经常出现,我是在php程序抓取的时候先判断一下抓到的title是不是“502 Bad Gateway”,如果不是则抓取成功,如果是则抓取失败 重新抓取。
根本的解决办法也是有的,你可以 网络 “
LNMP一键安装包的Nginx 502 Bad Gateway错误可能原因及解决方法

㈨ sae的php的curl功能是受到限制了吗

curl到国外的webservice上面,发送数据,处理后,再返回数据。
之前使用了美国空间,香港空间,但是总不满意,无法满足国内各地区的快速访问。
所以我现在放到了sae上面运行,但是sae有很多限制的,比如curl的限制如下:
connect_timeout5秒
send_timeout15秒
read_timeout20秒
抓取文件大小8MB
禁用头,这些头用户无法修改Content-Length、Host、Vary、Via、X-Forwarded-For、FetchUrl、AccessKey、TimeStamp、Signature、AllowTruncated、ConnectTimeout、SendTimeout、ReadTimeout
目前就是第一条把我给限制住了,后面的限制对我没有影响。
正是由于他的connect_timeout5秒限制,导致我的curl应用经常返回502/504错误提示。
这个出错比例大概在3%左右,也就是运行100次,就会出错3次,后来我将curl里的网址由https换成http,这样出错概率降低了不少,但还是存在,测试在1%左右。
对于结果我还是不满意。因为我的curl程序在其他地方(国内三家机房测试)运行都没有出现过错误。
当然我也给sae提出建议,甚至要求升级成付费用户,都没有回复。
惟一的一个管理员说跟我要了curl的网址说帮我找台机器测试看看是不是有这回事。
可能有人说你为什么要在sae这棵树上吊死?
说实话我看中sae的惟一优势是他们是5线机房,国内大部分地区的用户访问速度非常不错的。再说我申请通过开发者认证,每个月的云豆应该足够使用了。
现在似乎有三种选择:
1.继续给sae建议,让他们修改限制参数
2.优化代码?我实在想不出如何优化了
3.放弃sae,这不是我最终想要的结果
我的curl代码是这样的:
PHPcode
#POST方法
$curl=curl_init($url);
curl_setopt($curl,CURLOPT_POST,1);
curl_setopt($curl,CURLOPT_POSTFIELDS,$data);
curl_setopt($curl,CURLOPT_HEADER,0);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
$response=curl_exec($curl);
#GET方法
$curl=curl_init($url);
curl_setopt($curl,CURLOPT_GET,1);
curl_setopt($curl,CURLOPT_GETFIELDS);
curl_setopt($curl,CURLOPT_HEADER,0);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
$response=curl_exec($curl);
------解决方案--------------------
对于限制多多的机房我个人是扭头就走的.国内你一般只需要考虑电信网通(现在叫联通?)双线就行了,其他商用接入都是最后接到他们的网上。如果是用空间我还真没啥建议,我没用过任何一款空间,有经济基础的话似乎可以考虑美国的主机,或者香港的主机。
放弃sae转战阿里云然后回头来汇报一下情况好给我参考...哈哈哈
云豆够用吗?我不太相信...
至于curl的优化...这还能优化么...
------解决方案--------------------
你应该给出一些测试用的url

阅读全文

与phpcurl502相关的资料

热点内容
老死pdf 浏览:25
云服务器关机网址不见了 浏览:69
余冠英pdf 浏览:755
开发一个app上市需要什么步骤 浏览:28
phpsleep方法 浏览:430
时间同步服务器ip地址6 浏览:926
钢琴谱pdf下载 浏览:524
香港阿里云服务器怎么封udp 浏览:875
APp买海鲜到哪里 浏览:501
辽油社保app总提示更新怎么办 浏览:586
导入源码教程视频 浏览:613
天翼贷app在哪里下载 浏览:186
app开发源码查看器 浏览:516
程序员发展到了一个瓶颈 浏览:120
程序员去机房干嘛 浏览:697
英雄训练师怎么看曾经服务器 浏览:546
魔兽世界单机输入gm命令 浏览:372
51单片机最大负跳距是多少 浏览:418
android聊天控件 浏览:128
导致压缩机坏的原因 浏览:295