VPS侦探论坛

 找回密码
 注册
查看: 3680|回复: 9

非常诡异的502错误

[复制链接]
发表于 2019-10-10 23:24:12 | 显示全部楼层 |阅读模式

lnmp 1.6 ,php 7.0.21 ,nginx/1.16.0 ,mysql 5.6.36。
网站程序是discuzx 3.4 ,出现502错误的情况与平常不同,“固定”出现在某些机器上,不管服务器是否重启,都显示502,然后没出现过502的机器上,一直没有出现,出现的概念也不低,每天都有三两个朋友反映。附件里是php-fpm.log及slow.log。军哥麻烦您帮忙分析一下,谢谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
发表于 2019-10-11 13:41:06 | 显示全部楼层


有可能和 curl_exec() /home/source/plugin/jameson_read/yuyin.inc.php:97 你这个插件有关系
除了这个另外就是 curl_exec() /home/source/plugin/ljxlwb/saetv2.ex.class.php:397 这个
都是curl_exec 去进行请求的
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
 楼主| 发表于 2019-10-12 00:05:26 | 显示全部楼层

非常感谢军哥您的解疑,以下是两个文件里的curl_exec() 代码行:
yuyin.inc.php
  1. function curlPost($url){
  2.         $ch = curl_init();  
  3.         curl_setopt($ch, CURLOPT_URL, $url);  
  4.         // curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);  
  5.         // curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout-2);  
  6.         curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 信任任何证书  
  7.         // curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1); // 检查证书中是否设置域名  
  8.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  
  9.         // curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));
  10.         // curl_setopt($ch, CURLOPT_POST, true);  
  11.         // curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
  12.         $ret = curl_exec($ch);  
  13.         if(preg_match("/err_no/i",$ret[$key])){
  14.             $ret = json_decode($ret[$key],true);
  15.             $ret = 'baiduyuyin'.$ret['err_no'];
  16.             return $ret;
  17.         }
  18.         curl_close($ch);
  19.     return $ret;
  20. }
复制代码


saetv2.ex.class.php
  1.                 curl_setopt($ci, CURLOPT_URL, $url );
  2.                 curl_setopt($ci, CURLOPT_HTTPHEADER, $headers );
  3.                 curl_setopt($ci, CURLINFO_HEADER_OUT, TRUE );

  4.                 $response = curl_exec($ci);
  5.                 $this->http_code = curl_getinfo($ci, CURLINFO_HTTP_CODE);
  6.                 $this->http_info = array_merge($this->http_info, curl_getinfo($ci));
  7.                 $this->url = $url;
复制代码


请问军哥,问题出在哪里呢?
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
 楼主| 发表于 2019-10-12 01:18:39 | 显示全部楼层



查看phpinfo.php发现curl栏显示enabled:
  1. curl
  2. cURL        support                enabled
  3. cURL        Information        7.19.7
  4. Age        3
复制代码

查看php.ini,发现extension = php_curl.dll前面的分号没有去掉,直接去掉;
又发现PHP的no-debug-non-zts-20151012文件夹下没有curl.so之类的,find / -name "curl.so",发现在/usr/lib64/php/modules文件夹下有,于是ln -s /usr/lib64/php/modules/curl.so /usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/curl.so。
最后,重启lnmp restart。

还有疑问:因为并不是任何人访问都502,所以,是否说明curl是生效的,只是某些原因导致有的IP不能使用curl?
另外,环境方面,安装了两个PHP,另一个是php5.3,如果在ssh里,直接输入php -version,查到的是php5.3的信息,说明默认的是php5.3。于是查找发现/etc/profile里的系统环境是PATH=/usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
又只有/usr/bin下有php,运行该php也发现确实是指向php5.3,于是cp php php5.3备份,再做超链接ln -s /usr/local/php/bin/php php,直接运行php -version发现显示的是php7.0的了。

请问军哥,这样做有效吗?如何查看是否生效?
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
 楼主| 发表于 2019-10-12 01:29:55 | 显示全部楼层

刚重启,还是发现slow.log文件中存在这样的记录:
  1. 49231 [12-Oct-2019 01:20:20]  [pool www] pid 30964
  2. 49232 script_filename = /home/plugin.php
  3. 49233 [0x00007f0b1ea133a0] curl_exec() /home/source/plugin/jameson_read/yuyin.inc.php:97
  4. 49234 [0x00007f0b1ea132e0] curlPost() /home/source/plugin/jameson_read/yuyin.inc.php:77
  5. 49235 [0x00007f0b1ea13160] [INCLUDE_OR_EVAL]() /home/plugin.php:47
  6. 49236
  7. 49237 [12-Oct-2019 01:27:30]  [pool www] pid 30945
  8. 49238 script_filename = /home/plugin.php
  9. 49239 [0x00007f0b1ea133a0] curl_exec() /home/source/plugin/jameson_read/yuyin.inc.php:97
  10. 49240 [0x00007f0b1ea132e0] curlPost() /home/source/plugin/jameson_read/yuyin.inc.php:77
  11. 49241 [0x00007f0b1ea13160] [INCLUDE_OR_EVAL]() /home/plugin.php:47
  12. 49242
  13. 49243 [12-Oct-2019 01:27:45]  [pool www] pid 30947
  14. 49244 script_filename = /home/plugin.php
  15. 49245 [0x00007f0b1ea133a0] curl_exec() /home/source/plugin/jameson_read/yuyin.inc.php:97
  16. 49246 [0x00007f0b1ea132e0] curlPost() /home/source/plugin/jameson_read/yuyin.inc.php:77
  17. 49247 [0x00007f0b1ea13160] [INCLUDE_OR_EVAL]() /home/plugin.php:47
  18. 49248
  19. 49249 [12-Oct-2019 01:27:50]  [pool www] pid 30933
  20. 49250 script_filename = /home/plugin.php
  21. 49251 [0x00007f0b1ea133a0] curl_exec() /home/source/plugin/jameson_read/yuyin.inc.php:97
  22. 49252 [0x00007f0b1ea132e0] curlPost() /home/source/plugin/jameson_read/yuyin.inc.php:77
  23. 49253 [0x00007f0b1ea13160] [INCLUDE_OR_EVAL]() /home/plugin.php:47
复制代码

查看phpinfo.php:


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

军哥运维代购:http://shop63846532.taobao.com/

 楼主| 发表于 2019-10-12 10:23:50 | 显示全部楼层

licess 发表于 2019-10-11 13:41
有可能和 curl_exec() /home/source/plugin/jameson_read/yuyin.inc.php:97 你这个插件有关系
除了这个另外 ...

军哥你好,我干脆将yuyin.inc.php停用之後,用户反映502依旧,我重新上传slow.log给您,请看附件,非常感谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2019-10-12 10:39:40 | 显示全部楼层

以下是新增的,看到虽然关闭了对yuyin.inc.php的调用,但是仍然出现提示:
  1. 2876 [12-Oct-2019 10:29:26]  [pool www] pid 2546
  2. 2877 script_filename = /home/plugin.php
  3. 2878 [0x00007f1f35813860] curl_exec() /home/source/plugin/ljxlwb/saetv2.ex.class.php:397
  4. 2879 [0x00007f1f35813760] http() /home/source/plugin/ljxlwb/saetv2.ex.class.php:326
  5. 2880 [0x00007f1f35813660] oAuthRequest() /home/source/plugin/ljxlwb/saetv2.ex.class.php:278
  6. 2881 [0x00007f1f358135b0] get() /home/source/plugin/ljxlwb/saetv2.ex.class.php:1235
  7. 2882 [0x00007f1f358134d0] get_comments_by_sid() /home/source/plugin/ljxlwb/hl.inc.php:213
  8. 2883 [0x00007f1f35813160] [INCLUDE_OR_EVAL]() /home/plugin.php:47
  9. 2884
  10. 2885 [12-Oct-2019 10:29:51]  [pool www] pid 2573
  11. 2886 script_filename = /home/forum.php
  12. 2887 [0x00007f1f35814660] query() /home/source/class/db/db_driver_mysqli.php:141
  13. 2888 [0x00007f1f35814570] query() /home/source/class/discuz/discuz_database.php:137
  14. 2889 [0x00007f1f35814490] query() /home/source/class/discuz/discuz_database.php:101
  15. 2890 [0x00007f1f358143a0] fetch_all() /home/source/plugin/pn_tagpage/function/cache.php:22
  16. 2891 [0x00007f1f35814280] pn_tagpage_cachetagarray() /home/source/plugin/pn_tagpage/hook_mobile.class.php:91
  17. 2892 [0x00007f1f358140e0] post_pn_tagpage_message() /home/source/function/function_core.php:1201
  18. 2893 [0x00007f1f35813ef0] hookscript() /home/source/function/function_message.php:18
  19. 2894 [0x00007f1f35813c40] dshowmessage() /home/source/function/function_core.php:1450
  20. 2895 [0x00007f1f35813b70] showmessage() /home/source/include/post/post_newreply.php:457
  21. 2896 [0x00007f1f358135f0] [INCLUDE_OR_EVAL]() /home/source/module/forum/forum_post.php:348
  22. 2897 [0x00007f1f35813120] [INCLUDE_OR_EVAL]() /home/forum.php:72
  23. 2898
  24. 2899 [12-Oct-2019 10:30:13]  [pool www] pid 2554
  25. 2900 script_filename = /home/plugin.php
  26. 2901 [0x00007f1f358133a0] curl_exec() /home/source/plugin/jameson_read/yuyin.inc.php:97
  27. 2902 [0x00007f1f358132e0] curlPost() /home/source/plugin/jameson_read/yuyin.inc.php:77
  28. 2903 [0x00007f1f35813160] [INCLUDE_OR_EVAL]() /home/plugin.php:47
  29. 2904
  30. 2905 [12-Oct-2019 10:31:01]  [pool www] pid 2569
  31. 2906 script_filename = /home/plugin.php
  32. 2907 [0x00007f1f35813860] curl_exec() /home/source/plugin/ljxlwb/saetv2.ex.class.php:397
  33. 2908 [0x00007f1f35813760] http() /home/source/plugin/ljxlwb/saetv2.ex.class.php:326
  34. 2909 [0x00007f1f35813660] oAuthRequest() /home/source/plugin/ljxlwb/saetv2.ex.class.php:278
  35. 2910 [0x00007f1f358135b0] get() /home/source/plugin/ljxlwb/saetv2.ex.class.php:1235
  36. 2911 [0x00007f1f358134d0] get_comments_by_sid() /home/source/plugin/ljxlwb/hl.inc.php:213
  37. 2912 [0x00007f1f35813160] [INCLUDE_OR_EVAL]() /home/plugin.php:47
  38. 2913
  39. 2914 [12-Oct-2019 10:35:00]  [pool www] pid 3694
  40. 2915 script_filename = /home/plugin.php
  41. 2916 [0x00007fbde30133a0] curl_exec() /home/source/plugin/jameson_read/yuyin.inc.php:97
  42. 2917 [0x00007fbde30132e0] curlPost() /home/source/plugin/jameson_read/yuyin.inc.php:77
  43. 2918 [0x00007fbde3013160] [INCLUDE_OR_EVAL]() /home/plugin.php:47
复制代码
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
发表于 2019-10-12 17:13:01 | 显示全部楼层

1、curl这种基本组件都肯定是必须默认编译了的,都是启用了的,你自己从其他地方拷贝过来肯定会导致错误
2、你系统上存在 /usr/lib64/php/modules 说明系统上肯定有你通过其他方式安装的php
3、lnmp.org 的安装的不会修改系统 /etc/profile 文件,php -v 都是做的软连接,版本如果和你安装的不一样肯定是有通过其他方式安装的php
4、虽然你说关闭了,但是你贴出的日志中依然显示有这个插件的调用和超时记录
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
 楼主| 发表于 2019-10-12 20:53:03 | 显示全部楼层


本帖最后由 yanqzh 于 2019-10-12 20:55 编辑
licess 发表于 2019-10-12 17:13
1、curl这种基本组件都肯定是必须默认编译了的,都是启用了的,你自己从其他地方拷贝过来肯定会导致错误
2 ...

以前听说php7.0确实是有问题,容易出错,今天实在没有办法,抱着试试看的心态,安装了php7.1,然后切换到这个版本,没有想到,结果居然是解决了。。。给php7.1设置了慢日志,2秒,结果到现在都没有发现问题,就是日志没有产生,然后询问一直打不开网页的朋友,反映说可以打开了

军哥运维代购:http://shop63846532.taobao.com/

 楼主| 发表于 2019-10-12 21:00:22 | 显示全部楼层



php7.0版本上,曾经安装了许多东西,memcached、memcache更是换来换去,也安装了redis,配置参数上,也曾经多次修改。以前一直想着换,但是听说discuzx3.4的2017版本不兼容php7.1,就没有换。今天实在无法忍受,于是安装php7.1,然后插件只是安装了imagek、memcache,其他都没有安装,配置上也没改动,就是将php-fpm.conf的child线程数之类的全部加多10倍,其他参数全部不敢动,结果没有想到,解决502了,目前为止,未发现不良反应。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|VPS侦探 ( 鲁ICP备16040043号-1 )

GMT+8, 2024-9-22 10:01 , Processed in 0.029388 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表