nginx+php下curl请求https报502错

在做公司项目的时候使用了第三方的API接口,且接口采用的是https请求,在本地的wamp集成环境开发测试正常,放到服务器上结果报错 nginx 502 bad gateway。在论坛中爬楼了几天今天终于找到原因,php版本问题;

公司项目线上环境:

服务器安装了wdcp其中nginx是1.4.2版本 php是5.2.17版本

部署项目上去后,怎么运行都报502错,刚开始怀疑是nginx配置问题,百度了许久说请求https需要ssl于是配置了nginx的ssl后问题依旧,无奈只好继续搜索答案。


这是在wdcp论坛找到的php升级5.3脚本:

wget http://down.wdlinux.cn/in/php_up53.sh
sh php_up53.sh


---------------------------------------------

问了找到nginx 502 bad gateway错误,于是乎在本地服务器安装了wdcp进行测试。

1、安装wdcp,创建网站项目;

2、编写测试代码,index.php;


<?php
// 初始化一个 cURL 对象
$curl = curl_init();
// 刚开始抓取了https://github.com,但是页面弹框,后来改用抓取支付宝首页测试
curl_setopt($curl, CURLOPT_URL, ‘https://www.alipay.com‘);
// 设置header
curl_setopt($curl, CURLOPT_HEADER, 1);
// 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
// 运行cURL,请求网页数据
$data = curl_exec($curl);
// 关闭cURL请求
curl_close($curl);
// 打印出抓取的测试数据
var_dump($data);


3、浏览器请求页面 www.test.cn (这里www.test.cn是虚拟域名配置hosts来的)结果报错502


4、tail -f /www/wdlinux/nginx/logs/error.log查看请求错误日志,从日志看是上游过早关闭连接。。。。(什么意思)


*59 upstream prematurely closed connection while reading response header from upstream, client: 192.168.0.102, server: test.cn, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:88/", host: "www.test.cn"

5、百度 在wdcp论坛爬楼到一篇帖子,说要升级PHP版本,并提供了升级脚本php_up53.sh于是升级结果就真的就好了。


---------------------------------------

虽然目前好不知道问什么,但是先记录下nginx下的php函数curl请求Https报错502升级php到5.3以上包括5.3即可。


本文出自 “碎碎馮同學” 博客,请务必保留此出处http://sxfenglei.blog.51cto.com/2089560/1629151

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。