将阿里云服务器重启之后发生了什么:
出现的问题:
-
docker
镜像进入exit
态,即docker
内所有进程全部关闭,包括但不限于uwsgi
,nginx
和redis
。 -
重启
docker
后,重新运行uwsgi
,nginx
,redis
项目网页仍然无法正常打开。 -
将之前的项目文件删除,并重新从
GitHub
上拉取之前的备份。 -
启动
uwsgi
服务器,项目网页有部分模块失效。(原先支持登录,登出,注册和第三方一键登录,现在只能登录登出)
我的思考:
-
原因是之前没有启动
redis
服务器,很明显的道理,网页只有一部分功能失效,说明传给浏览器的.js
文件肯定是没有出错的,已经上传的js
代码没有问题,最坏的情况也就是缺少一部分代码。 -
第一次没想到重启
redis
服务,一键登录系统一直出问题,直到我从头开始复盘整个一键登录模块实现流程,才发现可能是没有启动redis
服务,我打开python3 manage.py shell
尝试redis
命令,果然报错,启动redis
服务后一键登录模块重新上线! -
根据Chrome网页的源代码报错和
js
代码debug,我发现从GitHub
拉取的备份.js
代码真的少了一部分,可能是之前上传的时候出现了问题。将缺少的js
文件和url.py
文件补充好后,项目重新上线并正常运行。
我的收获:
-
善于从网页报错和项目层级结构来寻找问题。比如网页提示
.js
文件出现问题,那么我会从构造函数的变量定义开始,再到start()
函数内实现的监听函数中分别查看各个子模块函数的定义是否有问题。 -
从顶向下查看
url
文件。根据Django的分层路由特性,我们可以从settings
根目录下的index.py
文件开始,向下一层一层的查找相应子目录的index.py
文件。 -
每次
Git
上传当天工作,我们一定要善于在GitHub
上浏览我们的代码,速度会比在本地vim
上快很多。(可能跟电脑也有关系xD)