以前的文章已经提到了 django+fastcgi的运行并不如意(web.py+spawn-fcgi却正常不少……),因此特地抽时间研究了一下uwsgi,试了一下,运行的很好,也很快,哈哈。
因此笔者的全部以前用apache+django搭建的项目(如fuload等)都已经替换成了nginx+django+uwsgi。python
一.安装uwsginginx
- 到http://projects.unbit.it/uwsgi/wiki/WikiStart#Getit 下载最新版本的uwsg。
- 解压后,若是没有安装libxml2,又不想安装的话,那么编辑文件 buildconf/default.ini, 把
1 |
xml_implementation = libxml2 |
改为web
1 |
xml_implementation = false |
- 执行编译
1 |
python uwsgiconfig.py --build |
- 执行安装
1 |
python setup.py install |
这样,uwsgi就安装上了~apache
二.nginx配置
配置要比fastcgi还简单一些:django
1
2
3
4 |
location / {
include uwsgi_params; uwsgi_pass 127...1:9090; } |
三.django配置
在mysite的统计目录(即setting.py的上级目录),建立文件uws_app.py:flask
1
2
3
4
5
6
7
8
9 |
import sys import os sys.path.append(os.path.abspath(os.path.dirname(__file__))) os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings' import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler() |
启动uwsgi:vim
1 |
uwsgi -s :9090 -w uws_app -p10 -d uws.error & |
其实也能够不用写uws_app.py这个文件,直接启动uwsgi:bash
1 |
uwsgi --module='django.core.handlers.wsgi:WSGIHandler()' --env DJANGO_SETTINGS_MODULE=mysite.settings -s :9090 -p 10 -d uws.log --touch-reload=uws.tc & |
四.web.py配置
建立文件 index.py :app
1
2
3
4
5
6
7
8
9
10
11
12
13 |
#!/usr/bin/python # -*- coding: utf-8 -*- import web
urls = ("/.*", "hello") class hello:
def GET(self):
return 'Hello, world!'
app = web.application(urls, globals()) application = app.wsgifunc() |
启动uwsgi:post
1 |
uwsgi -s :9091 -w index -p 2 -d uws.error & |
OK,到此为止就整个配置完啦,简单吧!
使用了uwsgi以后的fuload运行也很是稳定:

最后是uwsgi的一些文档,你们能够看一下. uwsgi 启动参数:
http://projects.unbit.it/uwsgi/wiki/Doc
uwsgi 配合django,web.py,flask等:
http://projects.unbit.it/uwsgi/wiki/Example