• 阿里云 django的一次web维护记录


    首先, 丢给我一个阿里云的server的账号/password,之前没有玩过阿里云,想想应该也是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:

    稍作调整,就能够将成功打开首页的登陆界面.  搞定之后,再在开机启动项中加入执行服务,让开机server就能够自己主动启动(/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/')


    5. 更新代码后uwsgi须要又一次又一次启动的问题:

    解决方式,參考: 点击打开链接

    思路就是每3s去自己主动又一次载入一次,在 wsgi.py中增加例如以下语句就可以:

    import uwsgi
    from uwsgidecorators import timer
    from django.utils import autoreload
    
    @timer(3)
    def change_code_gracefull_reload(sig):
        if autoreload.code_changed():
            uwsgi.reload()


    兴许假设还有问题的话,还会继续更新~


  • 相关阅读:
    fastcgi与cgi的区别
    SolidWorks eDraring Control
    基于SolidWorks的CAD系统研究
    构建以快速设计为目标的PDM系统
    模型图纸数据库设计
    VB开发SolidWorks实现机械产品参数化设计
    参数化图形驱动及Web零件库的研究开发
    基于PDM的 标准件库管理
    子窗口设计及编程
    某机械设备CAD系统的构造与设计
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/5150347.html
Copyright © 2020-2023  润新知