linux下nginx+python+uwsgi部署总结(django+web.py)
之前的文章已经提到了 django+fastcgi的运行并不如意(web.py+spawn-fcgi却正常很多……),所以特意抽时间研究了一下uwsgi,试了一下,运行的很好,也很快,哈哈。
所以笔者的所有之前用apache+django搭建的项目(如fuload等)都已经替换成了nginx+django+uwsgi。
一.安装uwsgi
- 到http://projects.unbit.it/uwsgi/wiki/WikiStart#Getit 下载最新版本的uwsg。
- 解压后,如果没有安装libxml2,又不想安装的话,那么编辑文件 buildconf/default.ini, 把
1
xml_implementation = libxml2
改成
1
xml_implementation = false - 执行编译
1
python uwsgiconfig.py --build - 执行安装
1
python setup.py install
这样,uwsgi就安装上了~
二.nginx配置
配置要比fastcgi还简单一些:
1 2 3 4 |
location / { include uwsgi_params; uwsgi_pass 127.0.0.1:9090; } |
三.django配置
在mysite的统计目录(即setting.py的上级目录),创建文件uws_app.py:
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:
1 |
uwsgi -s :9090 -w uws_app -p10 -d uws.error & |
其实也可以不用写uws_app.py这个文件,直接启动uwsgi:
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 :
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:
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


浙公网安备 33010602011771号
linux下nginx+python+uwsgi部署总结(django+web.py)