新学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
.....................(略)
1
chon 2015-03-18 08:32:14 +08:00 via Android 1
跟nginx没关系,nginx只是个反向代理。
直接 gunicorn mysite.wsgi:application -b xxxxxx 就可以了。 |
2
xiaket 2015-03-18 08:58:47 +08:00 via iPhone 1
你找找gunicorn是如何接一个标准的wsgi程序的,再找找如何在Django下写这个wsgi
|
3
happywowwow 2015-03-18 09:11:57 +08:00 1
gunicorn mysite.wsgi:app -b xxxxxx
|
4
kxxoling 2015-03-18 09:56:54 +08:00
对的,不过生产环境中还是建议配一个 nginx,gunicorn 官方是这么推荐的。
|
5
virusdefender 2015-03-18 10:01:04 +08:00 1
在django manage.py文件所在目录运行 gunicorn 工程名.wsgi:application -b 127.0.0.1:8020 --reload
最好是配合nginx 性能问题 参考 https://virusdefender.net/index.php/archives/120/ |
6
abccba OP 首先,迟复为歉!谢谢几位朋友。
@chon 我还以为需要针对django工程单独写一份类似 mysite.wsgi 文件才行呢,原来可以直接这么用 @xiaket 好好,谢谢您的宝贵建议! @happywowwow 谢谢,命令运行良好。 @kxxoling 嗯嗯,我先研究下简单情况,再上nginx。 @virusdefender 谢谢您提供的方法还有参考资料。 谢谢大家! |
7
julyclyde 2015-03-18 21:24:15 +08:00
1 gunicorn可以直接对接django app
2 django当代版本也提供wsgi app |
8
erhuabushuo 2015-03-20 13:56:15 +08:00
直接用uwsgi
|