推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
abccba
V2EX  ›  Python

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

  •  
  •   abccba · Mar 18, 2015 · 4578 views
    This topic created in 4081 days ago, the information mentioned may be changed or developed.

    新学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
    .....................(略)

    8 replies    2015-03-20 13:56:15 +08:00
    chon
        1
    chon  
       Mar 18, 2015 via Android   ❤️ 1
    跟nginx没关系,nginx只是个反向代理。
    直接 gunicorn mysite.wsgi:application -b xxxxxx
    就可以了。
    xiaket
        2
    xiaket  
       Mar 18, 2015 via iPhone   ❤️ 1
    你找找gunicorn是如何接一个标准的wsgi程序的,再找找如何在Django下写这个wsgi
    happywowwow
        3
    happywowwow  
       Mar 18, 2015   ❤️ 1
    gunicorn mysite.wsgi:app -b xxxxxx
    kxxoling
        4
    kxxoling  
       Mar 18, 2015
    对的,不过生产环境中还是建议配一个 nginx,gunicorn 官方是这么推荐的。
    virusdefender
        5
    virusdefender  
       Mar 18, 2015   ❤️ 1
    在django manage.py文件所在目录运行 gunicorn 工程名.wsgi:application -b 127.0.0.1:8020 --reload

    最好是配合nginx 性能问题 参考 https://virusdefender.net/index.php/archives/120/
    abccba
        6
    abccba  
    OP
       Mar 18, 2015
    首先,迟复为歉!谢谢几位朋友。

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

    谢谢大家!
    julyclyde
        7
    julyclyde  
       Mar 18, 2015
    1 gunicorn可以直接对接django app
    2 django当代版本也提供wsgi app
    erhuabushuo
        8
    erhuabushuo  
       Mar 20, 2015
    直接用uwsgi
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1448 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 17:03 · PVG 01:03 · LAX 10:03 · JFK 13:03
    ♥ Do have faith in what you're doing.