nginx+uwsgi来部署Django

1. 软件下载地址:


uwsgi 


wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz

flup 


wget http://www.saddi.com/software/flup/dist/flup-1.0.2.tar.gz

django


wget https://www.djangoproject.com/m/releases/1.7/Django-1.7.1.tar.gz


2. 安装

uwsgi 

$ tar zxf  uwsgi-1.9.6.tar.gz
cd uwsgi-1.9.6
uwsgi-1.9.6$ python3.2 uwsgiconfig.py --build
安装完成后会在当前目录生成uwsgi 二进制文件,可手动把它复制到/usr/sbin,运行时就不用加绝对路径
uwsgi-1.9.6$ sudo cp uwsgi /usr/sbin/uwsgi


django

tar zxf Django-1.5.1.tar.gz
cd Django-1.5.1
Django-1.5.1$ python3.2 setup.py install

 

3. 新建django项目


安装成功,新建django项目(最好不要在网站根目录htdocs下新建项目,不然别人会查看到你的源代码)
$ cd /tmp/
tmp$ sudo django-admin.py startproject onetwo
此时会生成一个新的文件夹,其结构如下

onetwo/
    manage.py
    onetwo/
        __init__.py
        settings.py
        urls.py
        wsgi.py

测试实验环境服务
sudo python3.2 manage.py runserver

Validating models...

0 errors found
April 22, 2013 - 15:50:53
Django version 1.5, using settings 'mysite.settings'
Development server is running at http://127.0.0.1:8000/ Quit the server with CONTROL-C.

lynx访问地址http://127.0.0.1:8000/,如出现“Welcome to Django”字样,则说明建项目成功。

其它IP地址访问:python3.2 manage.py runserver 0.0.0.0:8000


4. 关联django到nginx

服务器已经在跑PHP站点,现在新生成一个虚拟服务器
sudo vi /etc/nginx/nginx.conf
加入以下内容
    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    server {
        listen       8000;
        #server_name test.com;

        location / {
            include uwsgi_params;
            uwsgi_pass 127.0.0.1:9090;
        }
    }

完成后重启下nginx服务
sudo /etc/rc.d/nginx restart


如安装了libxml2,也可用如下方法处理:
在app目录创建个django.xml文件
/tmp/onetwo$ sudo vi django.xml
内容如下:



<uwsgi>

    <socket>:9090</socket>

    <chdir>/tmp/onetwo</chdir>

    <module>django_wsgi</module>

    <processes>4</processes> 

    <daemonize>uwsgi.log</daemonize>

    <module>manage</module>

    <pythonpath>..</pythonpath>

    <env>DJANGO_SETTINGS_MODULE=onetwo.settings</env>

    <module>django.core.handlers.wsgi:WSGIHandler()</module>

</uwsgi> 

启动方式:
/tmp/onetwo$ uwsgi -x django.xml 

接下来就可以访问你的站点了,文中参考了行内朋友的博文,在此感谢。



你可能感兴趣的:(nginx,django)