PythonTip >> 博文 >> Django

nginx + django

zihua 2014-01-16 18:01:54 点击: 741 | 收藏


折腾了两天 在各种手贱之后 终于还是把django部署在uwsgi+nginx环境上面了 当然是本地的  之后部署在阿里云上

首先是要安装uwsgi

http://www.tuicool.com/articles/mUvymi


apt-get install build-essential python
apt-get install python-dev
 按照这个方法安装编译环境


然后就可以用包管理或者编译源码的方法安装uwsgi

这里使用pip安装


export LDFLAGS="-Xlinker --no-as-needed"    #不知道加这个环境变量是做啥= =


sudo pip install uwsgi

http://django-china.cn/topic/101/

然后根据这个帖子的写一个脚本测试uwsgi是否正常工作


# test.py def application(env, start_response): start_response('200 OK', [('Content-Type','text/html')]) return "Hello World"

然后执行shell命令:

uwsgi --http :8001 --wsgi-file test.py

访问网页:

http://127.0.0.1:8001/


然后再在django项目的根目录写一个测试uwsgi的脚本 用uwsgi代理django项目 接受http请求

#!/usr/bin/env python # coding: utf-8 import os import sys # 将系统的编码设置为UTF8 reload(sys) sys.setdefaultencoding('utf8') os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings") from django.core.handlers.wsgi import WSGIHandler application = WSGIHandler()
 注意把mysite改成django项目名称

然后执行shell指令

uwsgi --http :8000 --chdir /home/work/src/sites/testdjango1/testdjango/mysite --module django_wsgi
看下http://127.0.0.1:8000/中是否出现django项目页面

http://django-china.cn/topic/124/

sudo apt-get install nginx直接安装nginx

然后在django项目下建立一个uwsgi和nginxsocket通信的xml文件

<uwsgi> <socket>:8077</socket> <chdir>/home/work/src/sites/testdjango1/testdjango/mysite</chdir> <module>django_wsgi</module> <processes>4</processes> <!-- 进程数 --> <daemonize>uwsgi.log</daemonize> </uwsgi>
uwsgi -x djangochina_socket.xml


然后sudo gedit /etc/nginx/sites-enable/default

然后在server中把

location / { }
中的内容改为

include uwsgi_params; uwsgi_pass 127.0.0.1:8077;
把listen 80前面的注释去掉 

然后 sudo /etc/init.d/nginx -s reload

sudo /etc/init.d/nginx restart

然后访问127.0.0.1 或者 ifconfig出来的本地ip即可看到django项目的首页 你要加上:80也没事

然后随便更改django项目中的内容 即可在页面中看到相应的变化  貌似不需要重新启动啥的

先这么着吧 

原文链接:http://my.oschina.net/kiloct/blog/157888

作者:zihua | 分类: Django | 标签: django | 阅读: 741 | 发布于: 2014-01-16 18时 |