首页 > 代码库 > 阿里云 django的一次web维护记录
阿里云 django的一次web维护记录
首先, 丢给我一个阿里云的服务器的账号/密码,之前没有玩过阿里云,想想应该也是ssh服务来远程登陆.
环境:
centos+nginx+uwsgi+python2.7+django.
1. 首先看了下nginx和uwsgi的配置文件, 弄懂大概关系. 怎么使用可以参考django doc: 点击打开链接 . 而我主要参考帖子:点击打开链接,来确定问题的所在. 访问的流程大概是:
the web client <-> the web server <-> the socket <-> uWSGI <-> Python可以使用如下命令来运行uwsgi:
uwsgi --ini mysite_uwsgi.ini
极大的简化了uwsgi的配置过程,将配置都放在配置文件里面.
nginx的系统日志在位置:/usr/local/nginx/log/error.log里面,可以看到问题:mysite.sock找不到, 这个文件不需要管,上面的脚本会自动来处理,只能说运行uwsgi这一步后面出了问题.具体什么问题,可以看看下面的解决方案.
2. 弄懂了配置之后,开始解决主要问题:502 bad GateWay
(1)将settings中的DEBUG设为True,也就是打开调试来运行;
(2)但是,设置为False之后,就无法运行了,这里纠结了半天. 猜想是异常信息报告的级别不同导致运行的结果不一样.
(3)运行终端会提示如下语句,有语法错误:
if settings.DEBUG is False:
稍作调整,就可以将成功打开首页的登陆界面. 搞定之后,再在开机启动项中添加运行服务,让开机服务器就可以自动启动(/etc/rc.local):
#start the nginx /usr/local/nginx/sbin/nginx #start the uwsgi /usr/local/bin/uwsgi --ini /home/www/mysite/mysite_uwsgi.ini
3. 登陆之后的一些问题
注册了一个账号,发现登陆之后会报错. 报错信息已经很明显:
UserInfo.views.editOrChack,unindent does not match any outer indentation level (views.py, line 41)对象的行处存在缩进问题,稍做修改就可以登陆进去.
4. 登陆进去之后,某个页面打不开的问题.
错误提示,可以定位问题是,url找不到匹配的问题,找到对应的控制器,查看代码,修改成如下代码即可:
def chackgender(req): key=req.session.get('username') existinfo=user_info.objects.filter(key__exact=key) if existinfo: sex=user_info.objects.get(key__exact=key).gender if sex=='female': #return HttpResponseRedirect('/mysite/girlTestEdit/') return HttpResponseRedirect('/girlTestEdit/') else: return HttpResponseRedirect('/boyTestEdit/') #return HttpResponseRedirect('/mysite/boyTestEdit/') else: #return HttpResponseRedirect('/mysite/editOrChack/') return HttpResponseRedirect('/editOrChack/')
后续如果还有问题的话,还会继续更新~
阿里云 django的一次web维护记录