APP报“服务器繁忙”,询问安卓开发工程师,得知报这个错是因为服务器返回了500错误。
500,一般是内部代码错误,或是服务器并发太高。
我首先想到会不会是服务器并发太高了,因为公司用了负载均衡,如果配置不合理,有可能出现瓶颈。
于是登进阿里云逐项排查,带宽充足、CPU、内存、磁盘读写都充足,当看到OSS有部分错误时,一度怀疑会不会是这个OSS导致的,但考虑了一下,觉得可能性不大,因为500错误应该还没访问到OSS就返回了...
于是,重新将目光转回一直认为不太可能的地方,代码有错误?
技术团队提交代码通过git进行的,还是比较规范的,这也是我首先排除的原因...不管了,先看看日志。
进nginx,先看了access_log...一堆的500错误...汗颜....证实了500错误并不是偶发...想看下error_log...发现,nginx配置的error_log文件里并没有任何内容,目测是配置的错误级别太高 了..
于是在nginx虚拟域配置部分,加上一行:error_log /data/wwwlogs/www.xxoo.com_error.log error;
这样配置下来后,很快就记录到错误信息了:
2019/04/24 19:44:39 [error] 20452#0: *1 FastCGI sent in stderr: "PHP message: PHP Fatal error: Call to undefined function Think\C() in /data/wwwroot/www.xxoo.com/ThinkPHP/Library/Think/Think.class.php on line 122
PHP message: PHP Fatal error: Call to undefined function Think\C() in /data/wwwroot/www.xxoo.com/ThinkPHP/Library/Think/Think.class.php on line 337" while reading response header from upstream, client: 11.22.33.44, server: www.xxoo.com, request: "POST /app/LngAndLat/editAndGetLAL HTTP/1.1", upstream: "fastcgi://unix:/dev/shm/php-cgi.sock:", host: "www.xxoo.com"
^_^其实能抓到错误信息已经成功了一半...
后面就是百度一下相关错误了,其中 http://www.thinkphp.cn/topic/21284.html 提到了解决方法。
原来用了很多年的框架ThinkPHP3.2也会在某些情况下暴走啊..