zoukankan      html  css  js  c++  java
  • 由验证码和session丢失的引发原因

    今天中午,突然完整验证码全部不能显示了,查看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了
    暗夜之中,才见繁星;危机之下,暗藏转机;事在人为,为者常成。
  • 相关阅读:
    java练习6
    java练习5
    java练习4
    java练习3
    java练习2
    java练习1
    用代码实现判断字符串的开头和结尾
    语句练习题2
    语句练习题1
    值类型和引用类型的区别
  • 原文地址:https://www.cnblogs.com/zenghansen/p/4624731.html
Copyright © 2011-2022 走看看