CentOS下Nginx+uWSGI+Django搭建

     2013年03月10日       teddy.sun       运维笔记->系统管理       nginx uwsgi django 

A.Nginix安装
请参见这篇文章:http://www.opstool.com/article/228
B.安装uWSGI
方法一:
从官网下载uwsgi-1.4.9.tar.gz,然后解压,执行setup.py
wget http://projects.unbit.it/downloads/uwsgi-1.4.9.tar.gz
tar -xzvf uwsgi-1.4.9.tar.gz
cd uwsgi-1.4.8
python setup.py build
python setup.py install
方法二:
使用easy_install安装uwsgi
easy_install uwsgi
C.安装Django
使用easy_install安装Django
easy_install django
完成后在我们的工作目录建立django项目,并测试运行:
#创建项目,这里我们只使用django admin的功能
django-admin.py startproject siteadmin

#修改siteadmin的settting
vim siteadmin/settings.py
修改如下参数:
DATABASES项
INSTALLED_APPS项里注释掉django.contrib.admin和django.contrib.admindocs前面的#号
#修改siteadmin的urls.py
vim siteadmin/urls.py
修改如下参数:
取消下面行的注释
from django.contrib import admin
admin.autodiscover()
url(r'^admin/doc/
url(r'^admin

#数据库初始化
python manage.py syncdb

#直接用manage.py测试django是否可以正常运行
python manage.py runserver 0.0.0.0:8080
完成,我再使用xml的方式来配置运行djano。
#在siteadmin目录下,建立siteadmin.xml,内容如下
<uwsgi>
    <socket>127.0.0.1:3031</socket>
    <chdir>/home/webapps/backend/django/myadmin</chdir>
    <pythonpath>..</pythonpath>
    <module>django_wsgi</module>
</uwsgi>
 
#在siteadmin目录下,建立dangjao_wsgi.py,因为django创建项目时本来就有一个siteadmin/wsgi.py,我们做个软连接即可
ln -s siteadmin/wsgi.py django_wsgi.py
使用uwsgi启动django。
uwsgi -x django.xml --uid nginx -t 30 -M -p 4 –limit-as 128 -R 10000 -d /home/django/siteadmin/logs/django.log
C.建立nginx配置文件:
在nginx配置文件里加入针对访问django的location
        location /django {
            include            uwsgi_params;
            uwsgi_pass      127.0.0.1:3031;
        }
重新加载nginx
/opt/nginx/sbin/nginx -s reload