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了
    暗夜之中,才见繁星;危机之下,暗藏转机;事在人为,为者常成。
  • 相关阅读:
    hdu 5387 Clock (模拟)
    CodeForces 300B Coach (并查集)
    hdu 3342 Legal or Not(拓扑排序)
    hdu 3853 LOOPS(概率DP)
    hdu 3076 ssworld VS DDD(概率dp)
    csu 1120 病毒(LICS 最长公共上升子序列)
    csu 1110 RMQ with Shifts (线段树单点更新)
    poj 1458 Common Subsequence(最大公共子序列)
    poj 2456 Aggressive cows (二分)
    HDU 1869 六度分离(floyd)
  • 原文地址:https://www.cnblogs.com/zenghansen/p/4624731.html
Copyright © 2011-2022 走看看