V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
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
wening
V2EX  ›  Python

在vps上已经安装了LNMP,运行几个PHP的小站点,现在需要部署一个Django的网站,求帮助

  •  
  •   wening · 2012-07-17 23:30:35 +08:00 · 5175 次点击
    这是一个创建于 4493 天前的主题,其中的信息可能已经有所发展或是发生改变。
    因为第一次部署Python + Django 的应用,所以希望大家可以帮小弟点忙
    不知道有没有好的教程、部署实践
    7 条回复    1970-01-01 08:00:00 +08:00
    evlos
        1
    evlos  
       2012-07-17 23:41:20 +08:00   ❤️ 1
    upstream frontends {
    server 127.0.0.1:8888;
    }
    server {
    listen 80;
    location / {
    proxy_read_timeout 1800;
    proxy_pass_header Server;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Scheme $scheme;
    proxy_pass http://frontends;
    }
    }

    Nginx 的配置文件中添加如上代码,8888 为 Django 端口
    wening
        2
    wening  
    OP
       2012-07-17 23:46:12 +08:00
    @evlos 感谢亲
    不过,我不明白,不需要先安装pyhton版本和Django的框架么
    ipconfiger
        3
    ipconfiger  
       2012-07-17 23:52:41 +08:00   ❤️ 2
    http://www.cnblogs.com/Alexander-Lee/archive/2011/05/02/tornado_host_django.html
    根据鄙文应该可以搞定,写得很详细了,python应该是linux系统装好就有的,centos5.6默认是2.4,centos6.2默认2.6,如果版本不够新需要自己安装如果装这个太详细了,由于不知道你的系统是啥,所以无法跟你说,话说问问题要说清楚,特别是这里回答个问题也要有开销的
    wening
        4
    wening  
    OP
       2012-07-18 00:00:15 +08:00
    @ipconfiger 忘了说了,我的生产环境是ubuntu 12.04
    wening
        5
    wening  
    OP
       2012-07-18 00:00:54 +08:00
    @ipconfiger 刚才忘了,感谢亲了,感谢啊
    ipconfiger
        6
    ipconfiger  
       2012-07-18 09:54:58 +08:00   ❤️ 1
    ubuntu12.04的python是2.7就不用另外安装了
    1. 安装mysql的python库
    $sudo apt-get install python-mysqldb

    2. 安装setup tools
    $sudo apt-get install python-setuptools

    3. 安装PIP
    $sudo easy_install pip

    4. 安装django等一系列python库
    $sudo pip install django
    $sudo pip install gunicon
    ...由于不知道你的django应用用到了那些库,剩下的自己依葫芦画瓢

    5. 安装supervisor用来管理python的进程
    $sudo pip install supervisor

    6. 生成supervisor的配置
    $sudo echo_supervisord_conf > /etc/supervisord.conf

    7. 修改/etc/supervisord.conf 增加web应用的配置
    $sudo vim /etc/supervisord.conf

    在最末尾增加如下配置
    [program:web]
    command=/usr/local/bin/gunicorn_django --workers 4 --name your_app_name
    user=www
    directory=/你的django站点目录的地址
    umask=022
    startsecs=0
    stopwaitsecs=0
    redirect_stderr=true
    stdout_logfile=/tmp/web.log

    然后启动supervisor
    $sudo supervisord

    这个时候站点服务已经启动起来了

    8. 修改nginx配置,配置虚拟站点,通过upstream反向代理到站点服务上

    $sudo vim /etc/nginx/conf.d/web.conf

    把下面内容直接贴入,修改一下域名等内容,保存
    upstream frontends {
    server 127.0.0.1:8000;
    }
    server {
    listen 80;
    server_name 站点域名写这里;
    location / {
    proxy_read_timeout 1800;
    proxy_pass_header Server;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Scheme $scheme;
    proxy_pass http://frontends;
    }
    }

    最后重启一下nginx $sudo /etc/init.d/nginx reload

    以后如果修改了站点的代码,重启服务是通过

    $sudo supervisorctl restart web

    停止站点是
    $sudo supervisorctl stop web
    wening
        7
    wening  
    OP
       2012-07-18 11:29:13 +08:00
    @ipconfiger 恩人啦,感谢大哥了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3070 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 13:39 · PVG 21:39 · LAX 05:39 · JFK 08:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.