Chinaunix首页 | 论坛 | 博客
  • 博客访问: 34044
  • 博文数量: 9
  • 博客积分: 225
  • 博客等级: 二等列兵
  • 技术积分: 110
  • 用 户 组: 普通用户
  • 注册时间: 2012-12-06 16:45
个人简介

木有

文章分类
文章存档

2013年(4)

2012年(5)

我的朋友

分类: 系统运维

2012-12-10 14:51:34

nginx + uwsgi + django 部署


环境:     os UBUNTU12
        nginx 1.2.4
        python 2.7
        django 1.4
        uwsgi 1.4.2

1 安装Nginx uwsgi
    pip install uwsgi

2 配置Nginx与uwsgi
    nginx配置:
        /etc/nginx/nginx.conf 是nginx的主配置文件
        在 /etc/nginx/sites-enabled 创建新的文件,名称随便.在此用test.conf
        test.conf

            server {
                listen     80;
                server_name    10.2.8.111;
                location / {
                root    /home/tc/trunk/ui;
                uwsgi_pass    127.0.0.1:8888;
                include    uwsgi_params;
                access_log off; }
            }

    uwsgi配置:

        在django的project目录下面创建wsgi.py以及wsgi.xml
            wsgi.py:

                import os,sys

                if not os.path.dirname(__file__) in sys.path[:1]:
                    sys.path.insert(0, os.path.dirname(__file__))
                os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

                from django.core.handlers.wsgi import WSGIHandler application = WSGIHandler()

            wsgi.xml

                
                    127.0.0.1:8888
                    路径
                    ..
                    wsgi
                

3 启动uwsgi 与nginx
    uwsgi -x wsgi.xml
    sudo /etc/init.d/nginx start


问题:
    每次修改django代码之后都需要重启uwsgi,解决方法是在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()
    或者在启动uwsgi的时候直接加   --touch-reload /tmp/.ops-reload 参数
阅读(1094) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:Django post 提交报错

给主人留下些什么吧!~~