django 项目怎么和 gunicorn 配合部署?(不用 nginx)

2015-03-18 07:29:57 +08:00
 abccba

新学web开发,参照django官网tutorial搭建了那个polls的工程(一个很简单、原始的django项目)。
想学习怎么和 gunicorn配合起来?不用nginix的前提下。django自带的runserver是OK的。

网上搜了一下,几乎都是有ngnix的情形。。。
找到一点零星资料,拼凑了下代码,发现不行:
% gunicorn -w 2 start:app -b '127.0.0.1:8000'

这是我的start.py:
# -- coding:utf-8 --
import os
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
sys.path.append("/home/xxx/mysite")
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
from django.core.wsgi import get_wsgi_application
from dj_static import Cling
app = Cling(get_wsgi_application())

% tree mysite | grep -v pyc
mysite
├── db.sqlite3
├── manage.py
├── mysite
│   ├── init.py
│   ├── settings.py
│   ├── urls.py
│   ├── wsgi.py
├── polls
│   ├── init.py
│   ├── admin.py
.....................(略)

3936 次点击
所在节点    Python
8 条回复
chon
2015-03-18 08:32:14 +08:00
跟nginx没关系,nginx只是个反向代理。
直接 gunicorn mysite.wsgi:application -b xxxxxx
就可以了。
xiaket
2015-03-18 08:58:47 +08:00
你找找gunicorn是如何接一个标准的wsgi程序的,再找找如何在Django下写这个wsgi
happywowwow
2015-03-18 09:11:57 +08:00
gunicorn mysite.wsgi:app -b xxxxxx
kxxoling
2015-03-18 09:56:54 +08:00
对的,不过生产环境中还是建议配一个 nginx,gunicorn 官方是这么推荐的。
virusdefender
2015-03-18 10:01:04 +08:00
在django manage.py文件所在目录运行 gunicorn 工程名.wsgi:application -b 127.0.0.1:8020 --reload

最好是配合nginx 性能问题 参考 https://virusdefender.net/index.php/archives/120/
abccba
2015-03-18 16:40:09 +08:00
首先,迟复为歉!谢谢几位朋友。

@chon 我还以为需要针对django工程单独写一份类似 mysite.wsgi 文件才行呢,原来可以直接这么用
@xiaket 好好,谢谢您的宝贵建议!
@happywowwow 谢谢,命令运行良好。
@kxxoling 嗯嗯,我先研究下简单情况,再上nginx。
@virusdefender 谢谢您提供的方法还有参考资料。

谢谢大家!
julyclyde
2015-03-18 21:24:15 +08:00
1 gunicorn可以直接对接django app
2 django当代版本也提供wsgi app
erhuabushuo
2015-03-20 13:56:15 +08:00
直接用uwsgi

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/177646

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX