今天中午,突然完整验证码全部不能显示了,查看gd库是没问题的,然后发现网站登录不上,追查变天,无果。
然后两个小时过后,可能是网站压力小了,网站又恢复正常。
但是过一阵又来。
其实很明显不是代码的问题,而是服务器环境问题。
查看内存,发现只剩下几十m,怪不得php不正常工作了。
然后用命令查看ps aux | grep -c php-fpm php进程数,发现有50+,每个占用0.2%,那就是10%。然而就是这样内存就爆了。
修改php-fpm的进程数 php-fpm.conf max_child,得以缓解问题。
2015-07-15:但是问题继续,这次等了几个小时还是没有恢复,开始调试代码,结果发现的入口文件index.php文件有问题。有bom,就是前面有输出,所以header函数失效,session也失效。问题解决。但是php-fpm的问题还是继续。
2016-04-18补充
今天发现一个问题,访问不存在的图片,会导致session丢失,具体原因不知道,但是间接导致这个原因的是nginx的rewrite
if (!-e $request_filename) #支持thinkphp { rewrite ^/test/(.*)$ 404 break; rewrite ^/dianping/(.*)$ 404 break; rewrite ^/((?!backup/).*)$ /index.php?s=$1 last; break; }
这是原来的配置,有缺陷,会把图片也解析
location ~ .*\.(htm|html)$ { if (!-e $request_filename) #支持thinkphp { rewrite ^/test/(.*)$ 404 break; rewrite ^/dianping/(.*)$ 404 break; rewrite ^/((?!backup/).*)$ /index.php?s=$1 last; break; } }
加上
location ~ .*\.(htm|html)$ {},就不会全部解析到index.php了