Ubuntu12.4系统下配置Django+Nginx+uWSGI

20 篇文章 0 订阅
13 篇文章 0 订阅
基于性能等多方面考虑,搭建Nginx+uWSGI环境
环境:ubuntu12.04
安装版本:nginx1.3.4+python2.7.3(系统自带)+django1.4.1+uWSGI1.2.5

 
一.安装NGINX (使用官方 PPA源安装最新版本)
    注:先更新源,安装最新nginx版本1.3.4,参考http://nginx.org/en/download.html
1)修改源信息:
sudo vim /etc /apt /sources.list

增加下面2行(此版本为1.3.4开发版)
deb http://ppa.launchpad.net/nginx/development/ubuntu precise main
deb-src http://ppa.launchpad.net/nginx/development/ubuntu precise main

增加公钥
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C300EE8C #注意没有此行,会安装默认版本

官方源(安装版本1.2.2稳定版):
deb http://nginx.org/packages/ubuntu/ precise nginx
deb-src http://nginx.org/packages/ubuntu/ precise nginx

2)并update一下。
sudo apt-get update
3)安装NGINX
sudo apt-get install nginx

 
安装uWSGI可能提示没有python.h文件,需要安装python-dev
    sudo apt -get install python -dev

 
二.安装uWSGI
    注意:安装uWSGI可能提示没有python.h文件,需要安装python-dev
    sudo apt -get install python -dev

 
    
    方法 1(安装默认 1. 0. 3版本)
    apt -get install uwsgi uwsgi -plugin -python     #ubuntu12.04下默认安装uWSGI1.0.3,会自带安装上python-pulign
    方法 2(编译安装 1. 2. 5版本)
    wget -c http : //projects.unbit.it /downloads /uwsgi - 1. 2. 5.tar.gz
    tar zxvf uwsgi - 1. 2. 5.tar.gz
    cd uwsgi - 1. 2. 5
    make
    sudo cp uwsgi /usr /bin /

 
 
三.安装django
wget -c https : / /www.djangoproject.com /download / 1. 4. 1 /tarball
tar zxvf Django - 1. 4. 1.tar.gz
cd Django - 1. 4. 1
sudo python setup.py install #需要root权限创建文件
默认路径在: /usr/local/lib/python2.7/dist-pachages/Django-1.4.1

此处使用sqlite3数据库,如果使用mysql或其他数据库,需要安装python-mysql或其他相应包
 
环境配置:
 
配置django
mkdir /home /wwwdjango /
cd /home /wwwdjango /
django -admin.py startproject mysite
tree mysite     #查看django自动生成的文件目录结构如下:
mysite /
| - - manage.py
` - - mysite
     | - - __init__.py
     | - - settings.py    #这是主要的django配置文件
     | - - urls.py
    ` - - wsgi.py
修改settings.py
配置数据库DATABASES中配置sqlite3
'ENGINE': 'django.db.backends.sqlite3', 
'NAME': '/home/wwwdjango/mysite/mysite.db',     #注意使用sqlite此文件及所在目录需要有读写权限
 
STATIC_ROOT = '/home/wwwdjango/mysite/mysite/static/'    #为了处理admin的样式问题
 
INSTALLED_APPS 中取消django.contrib.admin的注释
修改urls.py
取消下列行的注释
from django.contrib import admin
admin.autodiscover()

url(r'^admin/', include(admin.site.urls)),

生成数据表,处理admin样式
cd /home/wwwdjango/mysite
sudo ./manage.py syncdb    #首次使用按提示创建数据库用户
sudo ./manage.py collectstatic    #确保settings.py中设置的STATIC_ROOT目录存在,有写权限,nginx有读权限

 
配置nginx
cd /etc /nginx / sites -available /
sudo vi mysite.com.conf
添加下面内容
#django project conf
server {
        listen   80;
        server_name mysite.com;
        location / {
                include uwsgi_params;
                uwsgi_pass 127.0.0.1:8080;    #注意此处与uwsgi配置的socket地址一致
        }
 
        location /static/ {
            alias /home/wwwdjango/mysite/mysite/static/admin/;
            #root /home/wwwdjango/mysite/mysite/static/;
            access_log off;
        }       
        location /admin {
            uwsgi_pass 127.0.0.1:8080;
            include uwsgi_params;
        } 
}

cd ../sites-enable
sudo ln -s /etc/nginx/sites-avilable/mysite.com.conf mysite.com.conf

 
配置uwsgi
cd /home /wwwdjango /
sudo vi uwsgi. xml  或者 sudo vi uwsgi.ini  #参考 https://docs.djangoproject.com/en/1.4/howto/deployment/wsgi/uwsgi/
添加如下ini格式:
[uwsgi]
chdir = /home /wwwdjango /mysite
module =mysite.wsgi
env DJANGO_SETTINGS_MODULE =mysite.settings
master = True
pidfile = /tmp /project -master.pid
socket = 127. 0. 0. 1 : 8080
porcesses = 5
vacuum = True
max -requests = 5000
daemonize = /var /log /uwsgi /mysite.log
xml格式
<uwsgi>
 <socket>127.0.0.1:8080</socket>
 <listen>80</listen>
 <master>true</master>
 <pythonpath>/home/wwwdjango/mysite</pythonpath>
 <module>django_uwsgi</module>
 <wsgi-file>/home/wwwdjango/mysite/mysite/wsgi.py</wsgi-file>
 <processes>8</processes>
 <logdate>true</logdate>
 <daemonize>/home/wwwdjango/uwsgi.log</daemonize>
 <plugins>python</plugins>
</uwsgi>

 
 
启动uwsgi
uwsgi - -ini uwsgi.ini       关闭uwsgi :    killall - 9 uwsgi
uwsgi -x uwsgi.xml
启动nginx
sudo /etc /init.d /nginx restart    加载配置 sudo /etc /init.d /nginx reload
修改hosts
sudo vi /etc /hosts
添加
127. 0. 0. 1    mysite.com

 
此时可以通过mysite.com访问,会提示page not found,访问mysite.com/admin应该可以登录
 
创建自动启用sh<或添加到开机自启动>
sudo vi /etc/rc.local
exit 0前添加
uwsgi -x /home/wwwdjango/uwsgi.xml
此处可参考 http://blog.liuts.com/post/216/ 改写 这是centos系统的配置

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值