ubuntu中如何安装和配置uwsgi,使她可以和django一起工作?


正在实施一个django项目,在production环境中,想用uwsgi作为连接器,服务器是基于ubuntu10.04版,发现apt-get里面没有uwsgi。请问如何安装和配置。谢谢。

django 实施 ubutun uwsgi

jjgzs 11 years ago

在ubuntu中安装uwsgi的方式有多种:

  1. 从源码安装(下载uwsgi, projects.unbit.it/uwsgi/)
  2. pip安装 ( pip install uwsgi)
  3. apt-get安装,如果是ubuntu10.04,相对来说麻烦点
sudo add-apt-repository ppa:uwsgi/release
sudo apt-get update
sudo apt-get install uwsgi-python

接着,安装nginx,要在ubuntu里安装最新的nginx,你也需要添加新的repo

sudo add-apt-repository ppa:nginx/stable
sudo apt-get update
sudo apt-get install nginx

下面,配置你的django项目,简单的话,你可以在项目目录添加一个uwsgi.ini文件(我个人比较喜欢用ini文件,你也可以用其它类型比如xml),这里给一个参考(youyou是django项目目录):

[uwsgi]
socket=0.0.0.0:9000

#django项目的目录
chdir=/home/test/proj/youyou

#以下4行是添加项目相关的目录到python path
pythonpath=/home/test/proj
pythonpath=/home/test/proj/youyou
pythonpath=/home/test/proj/youyou/apps
pythonpath=/home/test/proj/youyou/thirdparty

#设置系统变量DJANGO_SETTINGS_MODULE,就是你的settings文件
env=DJANGO_SETTINGS_MODULE=youyou.settings

module=django.core.handlers.wsgi:WSGIHandler()
master=True
pidfile=/tmp/project-master.pid
vacuum=True
max-requests=5000
home=/home/test/proj/youyou
daemonize=/var/log/uwsgi/test.log
buffer-size=4096
enable-threads=true
virtualenv = /home/test/env
wsgi-file=/home/test/proj/youyou/wsgi.py

接着,就可以配置nginx了:

server {
        listen 8888;
        server_name 192.168.x.x;
        location /site_media {
                root /var/www/youyou;
        }

        location /{
                root            /home/test/proj/youyou;
                uwsgi_pass      127.0.0.1:9000;
                include         uwsgi_params;
                access_log      /var/log/nginx/localhost.log;
        }
}

编辑完成后,重启nginx。

现在开始测试,首先在项目目录,执行

uwsgi ini uwsgi.ini

然后在浏览器键入http://192.168.x.x:8888/ 如果顺利,你就可以看到项目页面了。反之,可能要开始艰苦的查错过程。log文件都在上述配置文件中有提到(使用tail -f xxxx.log即可)。

祝好运

高桥弥七郎 answered 11 years ago

Your Answer