话说又是几个月没动小程序了。
今天才发现无法鉴权,看了半天提示,一会儿说网络问题(确实遇到过网络问题,因为宽带断了),一会儿又502,一会儿又404,大部分情况下就是提示说鉴权服务器有问题。
其实这个提示是业务服务器提示的,但是因为它一会儿走socket一会儿走https,所以用fiddler老是抓不了包,导致我真以为是客户端开发工具升级导致的毛病,以为丫根本就没有联上网,盯着微信自己搞127.0.0.1的js看了半天(根本不可能看出什么鬼的,毕竟全是压缩过的代码,而且也没法打断点),天晓得控制台那一层层追的require是什么鬼。
后来突然fiddler又抓到包了,大概是走https的时候提示了证书问题,我允许了,这才发现小程序开发工具是上了网的。
好吧,去服务器看看。
从history里找以前查日志的路径,结果一找发现根本没有那些路径,我一开始以为是log文件夹被我删了,后来才想起来当时输入的路径也是错的,因为当时把业务服务器和会话服务器给搞混了。
其实腾讯官方这个wafer demo很蛋疼,小企业玩这个会话与业务分离的架构纯属无聊,何况我连小企业都不算。
当初搞的时候没有把人家的架构图看清楚,8月份看了一下,这回想起来了,那个负载均衡根本没有起什么分流的作用,只不过把请求转发给了业务服务器,业务服务器又让会话服务器做鉴权,所以应该先上业务服务器上看日志。
上去一看history,又回想起当初和腾讯那个工程师一起找问题的经过。于是用当时写的curl命令测试了一下会话服务器相关的页面,结果返回来的全是404,apache说没有object。
问题大概是找到了:
上次把国外服务器给停掉,一口气把各种玩意(包括这个博客)全都搬到国内来,在小程序的生产环境中配了一堆虚拟主机,这一配不要紧,原来小程序那个文件夹就404了。
一开始以为是权限问题,在httd-vhost.conf里写了一个全局的文件权限/跳转配置,没有用。
在业务服务器里用curl访问会话服务器,还是找不到相关的页面,后来一想,可不是找不到吗?其他的玩意全都成虚拟主机了,小程序的mina_auth作为第一个应用却无枝可依,就连根目录的Index.html也找不到。如果直接访问IP的话,会跳到这个博客首页上来,只好把小程序也给配成一个虚拟主机,配完再curl,果然有效。
但是这还不行,必须把sdk.config里的会话服务器地址给改掉,毕竟原来写的是ip加文件路径,现在既然成虚拟主机了,直接设成ip才符合逻辑,改完一重启,果然OK。
想来当初搬家之后好像确实没测试。但是话说昨天刚打开小程序的项目,似乎是可以登录的?
反正不管怎么说,这事是解决了。
有趣的是,服务器端的问题解决了,前端的问题好像也无医自愈了:
晚上刚打开开发工具的时候,报错说我那个全局变量没定义,难道是因为没有授权,连什么systemInfo都不让用?我当时想,不过就取个窗口宽高而已,怎么这么麻烦?没想到后端问题搞定,这个报错就直接消失了。
原本设想一天就把我想写的那个小程序搞定,现在只好又延期了。
这次跟上次一样,中途跑到小程序交流群去提问,屁用没有,最后还是自己解决了问题。
想知道怎么解决的
把域名改成了ip就好了啊,因为会话服务器上弄了几个vhost,业务服务器找不到会话服务器的mina_auth,所以才有问题的。一切都是因为那个奇葩的架构啊