继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

nginx+php下curl请求https报502错

linux快速入门培训
关注TA
已关注
手记 266
粉丝 31
获赞 120

在做公司项目的时候使用了第三方的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');// 设置headercurl_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即可。


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP