问题说明:
环境:LNMP
问题:商城项目从服务器获取代码之后,前台什么的都没有问题,只是后台使用cas登录一直重定向.
各种查资料,然而并没有解决问题。自己也试着打断点找源码问题,后来一高手说CAS源码不会有问题,就放弃去找其他的原因了,后来还是找不到问题的症结所在,只好再次。
以下是查找问题的过程:根据代码一步步找问题所在,最后确定是在CAS源码一处一直重定向来者,但问题还是不知道。这是从浏览器的调试模式看到url中的Ticket和cookie中保存的session的值不一样,从而判断是程序中session的问题,然后在源码问题附近找与session相关的功能,最后找到一处根据url请求参数设置session的地方,经过确认是这里获取不到url地址中的参数的问题,这下排除了源码问题。那么问题来了,这是什么问题,高手果断的回答是我的虚拟主机配置的问题,果不其然,是我在location中配置的时候没有加$query_string
。
我的虚拟主机配置如下/etc/nginx/site-aviable/www.myproject.com
:
server {
listen 80;
listen [::]:80;
server_name www.mywakav.cn;
root /usr/share/nginx/mywakav/public;
include /etc/nginx/default.d/*.conf;
location / {
index index.html index.htm index.php;
try_files $uri $uri/ /index.php?$query_string;
}
}
后来分析了下自己为什么没有找到问题所在:
1、听到高手说源码没有问题果断放弃去找其他方面的问题了。
2、对CAS还是不够了解(没有从浏览器调试模式找出url中的ticket和cookie中保存的session值不一样)。
3、在找到源码有问题的代码之后没有进行深入的分析(这个要建立在第二点之上)。
4、(此点是假设)即便从第三点得出是程序不能获取url中的参数问题也不会想到是nginx虚拟主机配置有问题。(经验不够)
写下这次的经历作为以后的借鉴,希望能够进步!
Author:leedaning
本文地址:http://blog.csdn.net/leedaning/article/details/50059281